最近登入某台伺服器的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]節提供的密碼>
至此,困惑多時的問題解決了!