天天看點

“Access denied for user 'root'@'localhost' (using password: YES”的處理方法

最近登入某台伺服器的mysql時候總報錯:

Access[[email protected] ~]# mysql -u root -p

Enter password:

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) denied for user ‘root’@‘localhost’ (using password: NO)

我猜想是不是密碼忘記了。。。然後準備修改密碼:

Enter password:

mysqladmin: connect to server at ‘localhost’ failed

error: ‘Access denied for user ‘root’@‘localhost’ (using password: YES)’

依然報這個錯誤。。。蛋疼了,百度一下,最終找到了方法如下:

方法一:

/etc/init.d/mysqld 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/mysqld restart 

mysql -uroot -p 
           

Enter password: <輸入新設的密碼newpassword>

方法二:

直接使用/etc/mysql/debian.cnf檔案中[client]節提供的使用者名和密碼:

mysql -udebian-sys-maint -p 
           

Enter password: <輸入[client]節的密碼>

mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 

mysql> FLUSH PRIVILEGES; 

mysql> quit 
           
mysql -uroot -p 
           

Enter password: <輸入新設的密碼newpassword>

方法三:

這種方法我沒有進行過測試,因為我的root使用者預設密碼已經被我修改過了,那位有空測試一下,把結果告訴我,謝謝!

mysql -uroot -p 
           

Enter password: <輸入/etc/mysql/debian.cnf檔案中[client]節提供的密碼>

至此,困惑多時的問題解決了!