centos7默认安装的是mariadb,所以要安装mysql首先要卸载mariadb,否则会冲突。
- 卸载mariadb
**列出所有被安装的rpm package **
rpm -qa | grep mariadb
卸载
rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64
错误:依赖检测失败:libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要 libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64,需要强制卸载,因为没有--nodeps
rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
- 安装mysql
要准备
mysql-community-client-5.7.9-1.el7.x86_64.rpm
mysql-community-common-5.7.9-1.el7.x86_64.rpm
mysql-community-libs-5.7.9-1.el7.x86_64.rpm
mysql-community-server-5.7.9-1.el7.x86_64.rpm
开始安装:
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm
安装过程中可能会缺少net-tools依赖,执行
yum install -y net-tools 安装它。
- 设置密码
安装完mysql并没有像mac一样提供默认密码,服务也没有起动,所以如果你执行
systemctl start mysqld.service起动服务后是无法通过mysql -uroot直接登录进去设置密码的。
所以这时候要修改/etc/my.cnf来禁用密码,通过mysql -uroot登录进去后设置新密码,然后再重启一下就可以用新密码正常登录了。
3.1 修改my.cnf
[root@iZ25fftuiaeZ upload]# cd /etc
[root@iZ25fftuiaeZ etc]# vim my.cnf
在最下面添加skip-grant-tables,如下图所示:
保存,退出。
3.2 修改密码
重启mysql
[root@iZ25fftuiaeZ etc]# systemctl restart mysqld.service
[root@iZ25fftuiaeZ etc]# mysql -uroot
执行下列语句更新密码
mysql> update user set authentication_string=password("your_new_password") where user="root";
3.3 退出mysql
再次编辑/etc/my.cnf,把skip-grant-tables注释掉,不注释掉那就永远不需要密码就可以登录了,这就太可怕了。
重启
[root@iZ25fftuiaeZ etc]# systemctl restart mysqld.service
然后就可以正常登录了
[root@iZ25fftuiaeZ etc]# mysql -uroot -pyour_new_password
如果登录后不管执行任何命令都提示:You must reset your password using ALTER USER statement before executing this statement.
执行下面命令退出使用新密码登录就好了:
SET PASSWORD = PASSWORD('your new password');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;