無法登入MySQL,存取被拒絕

無法登入MySQL,存取被拒絕

崩潰後,我在我的開發機器上重新安裝了 Ubuntu,而不是之前的安裝,在重新安裝了所有必要的軟體包(包括 mysql-server 和 mysql-client)後,我繼續恢復開發資料庫。不幸的是,我無法連接。

這有效:

$ sudo su
# mysql -u root

這不

$ mysql -u root -p
  • 我已嘗試清除mysql-*並重新安裝所有內容。
  • 我嘗試過重新配置(即sudo dpkg-reconfigure mysql-server-5.7
  • 我嘗試過使用查詢手動重置密碼UPDATE
  • 我已經嘗試了一切這裡(除了該表user沒有password列,而是authentication_string一列)

請問,有人可以幫我讓這個東西工作嗎?


** 編輯 **

mysql> SELECT user, host, authentication_string, password_expired, account_locked FROM user WHERE user = 'root';
+------------------+-----------+-------------------------------------------+------------------+----------------+
| user             | host      | authentication_string | password_expired | account_locked |
+------------------+-----------+-----------------------+------------------+----------------+
| root             | localhost | *<password hash>      | N                | N              |
| root             | %         | *<password hash>      | N                | N              |
+------------------+-----------+-----------------------+------------------+----------------+
5 rows in set (0.00 sec)

兩個root使用者俱有相同的密碼,使用 設定PASSWORD('password'),並且所有權限都已刷新,然後重新啟動服務。

與文檔所述相反,運行sudo dpkg-reconfigure mysql-server-5.7確實不是提示我為 root 指定一個新密碼。該命令成功終止,但從未要求我指定密碼。

答案1

我找到了我的答案,這裡

基本上,plugin對使用者的價值root@'localhost'並不大mysql_native_password

UPDATE user SET plugin = 'mysql_native_password' WHERE user = 'root';
FLUSH PRIVILEGES;

成功了,我終於能夠在沒有超級使用者權限的情況下登入了。

答案2

MySQL 權限可能未復原。事實上,您可以在沒有任何權限的情況下登入伺服器,這表示您需要設定 root 密碼,並新增需要使用其各自權限的任何其他使用者。

相關內容