在centos7中使用rpm方式安装mysql5.7版本后出现问题,使用root无法登陆,提示的错误是 ERROR 1045 (28000): Access denied for user 'root'@'localhost'。
使用默认密码无法登陆,尝试直接跳过初始密码,修改密码也没有成功。
后来查阅资料原因是:
mysql5.7.x版本有一些新的变化,大致是
mysqld_safe已经被废弃,rpm安装包默认不会安装mysqld_safe
user表中password列已经更改为authentication_string
在经过多次试验之后终于解决了root登录问题。解决步骤如下
$ systemctl stop mysqld.service
$ systemctl set-environment MYSQLD_OPTS="--user=mysql --skip-grant-tables --skip-networking"
$ systemctl start mysqld.service
$ mysql -u root mysql
mysql > UPDATE mysql.user SET authentication_string=PASSWORD("abcdef") WHERE user='root' and host='localhost';
mysql > flush privileges;
mysql > quit
$ systemctl unset-environment MYSQLD_OPTS
$ systemctl restart mysqld.service
这样就可以使用root登陆了。