Linux重置MySQL密碼還是錯誤的
無論是進行簡單的網站開發還是構建復雜的網絡應用程序,使用數據庫來存儲和管理數據是必不可少的。而MySQL在這方面擁有廣泛的應用和使用。但是,有時在忘記密碼或因安全原因更改密碼時,重新設置MySQL密碼可能會遇到一些問題。
情況1:忘記root密碼
通過以下步驟可重置root密碼:
首先,打開終端并通過以下命令以跳過MySQL權限表中的密碼請求來連接到MySQL服務器:
sudo mysqld_safe --skip-grant-tables &
接下來,在新的終端窗口中運行以下命令以連接到MySQL服務器:
mysql -u root
然后,運行以下命令更新root用戶的密碼:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
接下來,使用以下命令刷新MySQL特權表:
FLUSH PRIVILEGES;
最后,使用以下命令退出MySQL:
exit;
但是,如果出現“ERROR 1064 (42000):You have an error in your SQL syntax…”的錯誤提示,則意味著命令中存在錯誤。原因是MySQL 5.7版本不再使用password()函數,新版本需要使用authentication_string代替password。
情況2:更改密碼后仍無法訪問
在更改MySQL密碼后,如果無法訪問,可能沒有刷新MySQL特權表,導致新密碼無法被MySQL識別。可以通過以下命令刷新Privilege Table,以確保更改后的密碼立即生效:
FLUSH PRIVILEGES;
情況3:錯誤的用戶登錄憑據
如果嘗試使用錯誤的用戶憑據登錄到MySQL,則會出現“ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)”錯誤。解決方法是確定使用的是正確的用戶名和密碼,或重新創建用戶并授予適當的權限。