1. 程式人生 > >ERROR 1698 (28000): Access denied for user 'root'@'localhost' 錯誤的解決辦法

ERROR 1698 (28000): Access denied for user 'root'@'localhost' 錯誤的解決辦法

sock 正在 解決辦法 span ant nat sta ror rom

$ sudo mysql -u root 

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------------------+
| User             | plugin                |
+------------------+-----------------------+
| root             | auth_socket           |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+

正如您在查詢中看到的,根用戶正在使用auth_socket插件

有兩種方法可以解決這個問題:

1,可以將根用戶設置為使用mysql_native_password插件
2,您可以用您的系統用戶創建一個新的數據庫用戶(推薦)

方法一:

$ sudo mysql -u root #使用sudo 進入mysql,執行下面語句。

mysql> USE mysql;
mysql> UPDATE user SET plugin=mysql_native_password WHERE User=root;
mysql> FLUSH PRIVILEGES;
mysql
> exit; $ service mysql restart

方法二:(用你自己的用戶名替換系統用戶)

$ sudo mysql -u root 

mysql> USE mysql;
mysql> CREATE USER YOUR_SYSTEM_USER@localhost IDENTIFIED BY ‘‘;
mysql> GRANT ALL PRIVILEGES ON *.* TO YOUR_SYSTEM_USER@localhost;
mysql> UPDATE user SET plugin=auth_socket
WHERE User=YOUR_SYSTEM_USER; mysql> FLUSH PRIVILEGES; mysql> exit; $ service mysql restart

ERROR 1698 (28000): Access denied for user 'root'@'localhost' 錯誤的解決辦法