遇到 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
錯誤時,通常是因為嘗試以 root 使用者身份登入 MySQL 時沒有提供密碼或提供的密碼不正確。以下是解決此問題的步驟:
-
檢查是否設定了密碼:
- 如果從未為 root 使用者設定過密碼,可以嘗試在命令列中直接輸入
mysql -u root
登入。 - 如果之前設定過密碼,確保使用正確的密碼嘗試登入。
- 如果從未為 root 使用者設定過密碼,可以嘗試在命令列中直接輸入
-
重置 root 密碼:
- 停止 MySQL 服務:
sudo systemctl stop mysql
或sudo service mysql stop
- 啟動 MySQL 跳過許可權表:
sudo mysqld_safe --skip-grant-tables &
- 重新連線到 MySQL:
mysql -u root
- 在 MySQL 提示符下,選擇 MySQL 資料庫:
USE mysql;
- 更新 root 使用者的密碼:
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE User='root'; FLUSH PRIVILEGES;
- 退出 MySQL:
exit
- 重啟 MySQL 服務:
sudo systemctl start mysql
或sudo service mysql start
- 使用新密碼登入:
mysql -u root -p
- 停止 MySQL 服務: