在操作mysql是可能會出現無法登陸的問題,其中最常見的錯誤就是,ERROR 1045,如圖所示的錯誤:
<a href="http://s1.51cto.com/wyfs02/M02/80/09/wKiom1c1H8XQJIS1AACZBk6-RhM694.jpg" target="_blank"></a>
這種錯誤産生的原因有兩種:1、密碼錯誤;2、使用者名不正确。網上給出的方法一般是進入安全模式,修改密碼。具體操作方法是:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>
mysql>
但是有時依然無法登入,得到的結果還是:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
此時就要思考是否使用者名錯誤的原因了,安全模式再次登入使用者,檢視目前系統的使用者:
# mysql -u root mysql
<a href="http://s5.51cto.com/wyfs02/M00/80/06/wKioL1c1Iv-hBC6DAAFHIaiW_c8726.jpg" target="_blank"></a>
發現使用者清單中沒有localhost這個主機名,此時更改主機名;
mysql> UPDATE user SET Host='localhost' WHERE Host='mylinux';
mysql> UPDATE user SET Host='localhost.localdomain' WHERE Host='mylinux2';
<a href="http://s5.51cto.com/wyfs02/M02/80/06/wKioL1c1I63RbdMZAAEBkXDX9YE048.jpg" target="_blank"></a>
退出後,重新開機mysql服務,重新登入就會發現可以登陸了!
<a href="http://s1.51cto.com/wyfs02/M00/80/09/wKiom1c1I0HhoIokAAGXHhoLxH4358.jpg" target="_blank"></a>
本文轉自 夢想成大牛 51CTO部落格,原文連結:http://blog.51cto.com/yinsuifeng/1772918,如需轉載請自行聯系原作者