在網上查了一下相關的案例,發現與權限表mysql.user表有關
解決方法:
關閉數據庫
service mysqld stop
以跳過權限認證方式啟動mysql
mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
刪除mysql.user表中host名為'localhost'的記錄
mysql> use mysql
mysql> delete from user where host='localhost';
Query OK, 7 rows affected (0.00 sec)
mysql> INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y', '','','','',0,0,0,0);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
再次重啟數據庫后,正常
service mysqld restart
mysqld_safe --defaults-file=/etc/my.cnf &
更改root密碼
mysqladmin -u root -proot password