本文基于MySQL的官方入门手册,通过本地CentOS虚拟机模拟安装二进制发行版的MySQL。
如果之前你在操作系统中使用本地包管理系统安装过MySQL,请确保已经完全删除相关的安装资源。同时也确保 /etc/my.cnf 或则 /etc/mysql目录被移除,以防出现问题。
MySQL安装需要依赖libaio包,用来保证数据目录初始化和随后的服务器启动。
shell> yum search libaio # search for info
shell> yum install libaio # install library
1. 解压二进制包
如下命令首先确认,/usr/local下的mysql文件夹已创建
tar -xzf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql
Directory | Contents of Directory |
---|---|
bin | mysqld server, client and utility programs |
docs | MySQL manual in Info format |
man | Unix manual pages |
include | Include (header) files |
lib | Libraries |
share | Error messages, dictionary, and SQL for database installation |
support-files | Miscellaneous support files |
2. 安装和使用MySQL二进制分发,命令序列如下所示
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chown mysql:mysql mysql-files
shell> chmod 750 mysql-files
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
随系统启动MySql服务
shell> cd /etc/init.d/
shell> chkconfig –add mysql.server
shell> chkconfig –level 345 mysql.server on
shell> chkconfig –list
开放远程访问MySQL的端口
shell> firewall-cmd --permanent --add-port=3306/tcp --zones=public
shell> firewall-cmd --reload
shell> firewall-cmd --permanent --query-ports=3306/tcp
重置mysql的root用户初始密码
1.查看root用户的临时密码,用于修改密码时校验
shell> cat /var/log/mysqld.log | grep 'temporary password'
2.使用mysqladmin进行密码修改
shell> mysqladmin -uroot -p password
Enter password: **此输入的为上一步的临时密码**
New password:
Confirm new password:
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
3.如果忘记root密码,可执行如下操作进行密码重置
shell> service mysql stop
shell> mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
shell> mysql -uroot -p
shell> update mysql.user set authentication_string=password('MySql5.7') where user='root';
shell> flush privileges;
shell> quit;
then login again!!!
启动失败案例处理办法
shell>> ./mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决办法:
/tmp目录下的mysql.sock文件是在安装过程的初始化阶段生成的
如果不存在mysql.sock就建立个空文件
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock