本文使用MySQL-5.7.18。操作系统为64位CentOS Linux release 7.2.1511 (Core),以桌面形式安装。
卸载MariaDB
CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突,故先卸载MariaDB。
1.查看已安装的MariaDB相关rpm包。
rpm -qa | grep mariadb
2.查看已安装的MariaDB相关yum包,包名需根据rpm命令的结果判断。
yum list mariadb-libs
3.移除已安装的MariaDB相关yum包,包名需根据yum list命令的结果判断。此步骤需要root权限。
yum remove mariadb-libs
下载MySQL rpm包
由于软件包很大,可以先用其他方式(如迅雷)下载。使用rpm方式,还可在无法联网的条件下安装——这是yum无法做到的。如需安装其他版本的MySQL,请自行到官网搜索相应的rpm下载链接。
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
使用rpm包安装MySQL
以下步骤需要root权限。且因包之间的依赖关系,各rpm命令必须按序执行。
mkdir mysql-5.7.18
tar -xv -f mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C mysql-5.7.18
cd mysql-5.7.18/
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
(如果删除执行如下)
cd ..
rm -rf mysql-5.7.18
rm mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
修改MySQL初始密码
以下步骤需要root权限。
1.由于一开始并不知道密码,先修改配置文件/etc/my.cnf令MySQL跳过登录时的权限检验。加入一行:
skip-grant-tables
2.重启MySQL。
service mysqld restart
3.免密码登录MySQL。
mysql
4.在mysql客户端执行如下命令,修改root密码。
use mysql;
UPDATE user SET authentication_string = password('your-password') WHERE host = 'localhost' AND user = 'root';
quit;
5.修改配置文件/etc/my.cnf删除此前新增那一行skip-grant-tables,并重启MySQL。这一步非常重要,不执行可能导致严重的安全问题。
6.使用刚刚设置的密码登录。
mysql -u root -p
7.MySQL会强制要求重新修改密码,且不能为简单规则密码。
ALTER USER root@localhost IDENTIFIED BY 'your-new-password';