加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL-5.5的二进制包是怎样安装的

发布时间:2023-09-28 15:30:08 所属栏目:MySql教程 来源:
导读:本文主要给大家简单讲讲MySQL-5.5的二进制包是如何安装的,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL-5.5的二进制包是如何安装的这篇文章可以给大家带
本文主要给大家简单讲讲MySQL-5.5的二进制包是如何安装的,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL-5.5的二进制包是如何安装的这篇文章可以给大家带来一些实际帮助。
 
环境:
 
[root@SQL-M ~]# cat /etc/redhat-release
 
CentOS release 6.8 (Final)
 
[root@SQL-M ~]# uname -r
 
2.6.32-642.el6.x86_64
 
开始安装配置:
 
[root@SQL-M ~]# cd /usr/local/src/
 
[root@SQL-M src]# wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.55-linux2.6-x86_64.tar.gz
 
[root@SQL-M src]# ll -h
 
total 178M
 
-rw-r--r-- 1 root root 178M Apr 22 16:27 mysql-5.5.55-linux2.6-x86_64.tar.gz
 
MySQL-5.5的二进制包是如何安装的
 
[root@SQL-M src]# tar zxf mysql-5.5.55-linux2.6-x86_64.tar.gz -C /usr/local/   # 解压
 
[root@SQL-M src]# cd ..
 
[root@SQL-M local]# mv mysql-5.5.55-linux2.6-x86_64/   mysql-5.5.55     # 改名
 
[root@SQL-M local]# ln -s mysql-5.5.55  mysql          # 做软连接
 
[root@SQL-M local]# useradd mysql -s /sbin/nologin -M          # 建立系统用户
 
[root@SQL-M local]# mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql             # 初始化数据库
 
[root@SQL-M local]# chown -R mysql:mysql  mysql-5.5.55       # 对目录授权
 
[root@SQL-M local]# vi /etc/my.cnf                      # 创建配置文件,测试用的
 
[client]
 
port=3306
 
socket= /usr/local/mysql/mysql.sock
 
[mysqld]
 
user    = mysql
 
datadir = /usr/local/mysql/data/
 
character-set-server = utf8
 
skip-character-set-client-handshake
 
init-connect = 'SET NAMES utf8'
 
open_files_limit=1024
 
back_log = 600
 
max_connections = 800
 
max_connect_errors = 3000
 
table_cache = 614
 
external-locking = FALSE
 
max_allowed_packet =8M
 
sort_buffer_size = 1M
 
join_buffer_size = 1M
 
thread_cache_size = 100
 
thread_concurrency = 2
 
query_cache_size = 2M
 
query_cache_limit = 1M
 
query_cache_min_res_unit = 2k
 
thread_stack = 192K
 
tmp_table_size = 2M
 
max_heap_table_size = 2M
 
log-bin = /usr/local/mysql/data/mysql-bin
 
binlog_cache_size = 1M
 
max_binlog_cache_size = 1M
 
max_binlog_size = 2M
 
expire_logs_days = 7
 
key_buffer_size = 16M
 
read_buffer_size = 1M
 
read_rnd_buffer_size = 1M
 
bulk_insert_buffer_size = 1M
 
lower_case_table_names = 1
 
skip-name-resolve
 
slave-skip-errors = 1032,1062
 
replicate-ignore-db=mysql
 
server-id = 1
 
innodb_additional_mem_pool_size = 4M
 
innodb_buffer_pool_size = 16M
 
innodb_file_io_threads = 4
 
innodb_thread_concurrency = 8
 
innodb_flush_log_at_trx_commit = 2
 
innodb_log_buffer_size = 2M
 
innodb_log_file_size = 4M
 
innodb_log_files_in_group = 3
 
innodb_max_dirty_pages_pct = 90
 
innodb_lock_wait_timeout = 120
 
innodb_file_per_table = 0
 
[mysqldump]
 
quick
 
max_allowed_packet = 2M
 
[mysqld_safe]
 
log-error=/var/log/mysqld.log
 
pid-file=/var/run/mysqld/mysqld.pid
 
[root@SQL-M local]# cp mysql/bin/* sbin/    # 复制执行命令到 sbin 下
 
[root@SQL-M local]# cp mysql/support-files/mysql.server /etc/init.d/mysqld  # 生成启动脚本
 
[root@SQL-M local]# /etc/init.d/mysqld start      # 直接启动服务
 
Starting MySQL...... SUCCESS!
 
[root@SQL-M ~]# netstat -lntup                    # 查看服务
 
Active Internet connections (only servers)
 
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
 
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      7853/mysqld
 
[root@SQL-M ~]# lsof -i:3306
 
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 
mysqld  7853 mysql   12u  IPv4  24118      0t0  TCP *:mysql (LISTEN)
 
[root@SQL-M local]# mysqladmin -u root password      # 给 root 密码,默认免密登录
 
Enter password:
 
[root@SQL-M local]# mysql -uroot -p             # 交互式密码登录
 
Enter password:
 
Welcome to the MySQL monitor.  Commands end with ; or \g.
 
Your MySQL connection id is 3
 
Server version: 5.5.55-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
 
affiliates. Other names may be trademarks of their respective
 
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>
 
mysql> show databases;
 
+--------------------+
 
| Database           |
 
+--------------------+
 
| information_schema |
 
| mysql              |
 
| performance_schema |
 
| test               |
 
+--------------------+
 
4 rows in set (0.13 sec)
 
mysql> drop database test;             # 删掉测试库
 
Query OK, 0 rows affected (0.00 sec)
 
mysql> select user,host from mysql.user;
 
+------+-----------+
 
| user   | host      |
 
+------+-----------+
 
| root | 127.0.0.1 |
 
| root | ::1            |
 
|         | localhost |
 
| root | localhost |
 
|         | sql-m      |
 
| root | sql-m      |
 
+------+-----------+
 
6 rows in set (0.11 sec)
 
mysql> drop user root@'::1';              # 把没用的用户删除
 
Query OK, 0 rows affected (0.14 sec)
 
mysql> drop user ''@localhost;
 
Query OK, 0 rows affected (0.00 sec)
 
mysql> drop user ''@'sql-m';
 
Query OK, 0 rows affected (0.00 sec)
 
mysql> drop user root@'sql-m';
 
Query OK, 0 rows affected (0.03 sec)
 
mysql> select user,host from mysql.user;
 
+------+-----------+
 
| user | host      |
 
+------+-----------+
 
| root | 127.0.0.1 |
 
| root | localhost |
 
+------+-----------+
 
2 rows in set (0.00 sec)
 
mysql> flush privileges;
 
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit
 
[root@SQL-M local]# mysqladmin -uroot -p123 password    # 改密码
 
New password:
 
Confirm new password:
 
测试忘记root密码重新找回:
 
[root@SQL-M ~]# /etc/init.d/mysqld stop       # 先停掉服务
 
Shutting down MySQL.. SUCCESS!
 
[root@SQL-M ~]# mysqld_safe --skip-grant-tables &    # 忽略授权表方式启动服务
 
[1] 3685
 
170422 17:37:34 mysqld_safe Logging to '/var/log/mysqld.log'.
 
170422 17:37:34 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
 
[root@SQL-M ~]# 170422 17:37:39 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
 
[1]+  Done                    mysqld_safe --skip-grant-tables
 
奇怪居然失败了!看一下日志先。。。
 
[root@SQL-M ~]# tail /var/log/mysqld.log
 
170422 17:39:41  InnoDB: Waiting for the background threads to start
 
170422 17:39:42 InnoDB: 5.5.55 started; log sequence number 1595668
 
170422 17:39:42 [Note] Recovering after a crash using /usr/local/mysql/data/mysql-bin
 
170422 17:39:42 [Note] Starting crash recovery...
 
170422 17:39:42 [Note] Crash recovery finished.
 
170422 17:39:42 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
 
170422 17:39:42 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
 
170422 17:39:42 [Note] Server socket created on IP: '0.0.0.0'.
 
170422 17:39:42 [ERROR] /usr/local/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2)
 
170422 17:39:42 [ERROR] Can't start server: can't create PID file: No such file or directory
 
可以看到,无法创建 pid 文件,这肯定是没权限造成的。
 
/var/run/mysqld 这个路径是配置文件里配的:
 
[root@SQL-M ~]# tail -3 /etc/my.cnf
 
[mysqld_safe]
 
log-error=/var/log/mysqld.log
 
pid-file=/var/run/mysqld/mysqld.pid
 
   这里有点奇怪,用 /etc/init.d/mysqld 启动服务时它不会读取配置文件里配置的 pid 路径,而用 mysqld_safe --skip-grant-tables & 忽略授权表方式启动服务却会读取配置文件里的 pid 路径。
 
不想动 /var/log/ 这个目录的权限,改配置文件
 
[root@SQL-M ~]# vim /etc/my.cnf
 
[mysqld_safe]
 
log-error=/var/log/mysqld.log
 
pid-file=/usr/local/mysql/mysqld.pid
 
[root@SQL-M ~]# /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &   # 再次执行
 
[1] 7109
 
170422 17:54:17 mysqld_safe Logging to '/var/log/mysqld.log'.
 
170422 17:54:17 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
 
[root@SQL-M ~]#                            # 这次可以了
 
[root@SQL-M ~]# mysql                 # 免密登录
 
Welcome to the MySQL monitor.  Commands end with ; or \g.
 
Your MySQL connection id is 1
 
Server version: 5.5.55-log MySQL Community Server (GPL)
 
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
 
affiliates. Other names may be trademarks of their respective
 
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>
 
mysql> update mysql.user set password=password('123') where user='root' and host='localhost';                               # 修改密码
 
Query OK, 1 row affected (0.00 sec)
 
Rows matched: 1  Changed: 1  Warnings: 0
 
mysql> flush privileges;                   # 刷新后退出用新密码登录
 
Query OK, 0 rows affected (0.19 sec)
 
以上二进制包简单安装完成。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章