崩潰後,我在我的開發機器上重新安裝了 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 密碼,並新增需要使用其各自權限的任何其他使用者。