關於centos7中使用rpm方式安裝mysql5.7版本後無法使用root登錄的問題,centos7mysql5.7
最近在centos7中通過rpm方式安裝了最新版本的mysql-server 5.7 (mysql57-community-release-el7-7.noarch.rpm) ,發現安裝成功後無法使用root登錄。百度google一番無果,最後在官方文檔中找到了答案。現記錄完整安裝及問題解決過程,希望能幫助到其他朋友。
OS版本:
Linux version 3.10.0-327.el7.x86_64 (
[email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
RPM方式安裝mysql-server過程如下:
$ su root
$ sudo wget http://repo.mysql.com/mysql57-community-release-el7-7.noarch.rpm
$ sudo rpm -ivh mysql57-community-release-el7-7.noarch.rpm
$ sudo yum install mysql-server
##一路yes之後等待安裝成功的提示
到此為止,mysql57已經成功安裝。現在使用root嘗試登錄到mysql,提示錯誤 ERROR 1045 (28000): Access denied for user 'root'@'localhost'
發生這個問題的原因估計是rpm方式安裝之後mysql使用了默認密碼來初始化root用戶。
度娘谷歌之後得到的解決方案對5.7.x版本無效。 在官網上尋找到了一些思路 https://dev.mysql.com/doc/refman/5.7/en/server-management-using-systemd.html
mysql5.7.x版本有一些新的變化,大致是
在經過多次試驗之後終於解決了root登錄問題。解決步驟如下
$ sudo systemctl stop mysqld.service
$ sudo systemctl set-environment MYSQLD_OPTS="--user=mysql --skip-grant-tables --skip-networking"
$ sudo 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
$ sudo systemctl unset-environment MYSQLD_OPTS
$ sudo systemctl restart mysqld.service
OK,經過以上幾個步驟操作之後,重新使用root登錄成功。