ERROR 1045 (28000): Access denied for user 'root'@'localhost' 表示用戶名/密碼不匹配,通常是忘記 root 密碼。
Debian 系安裝會自動創建 debian-sys-maint 賬戶,密碼存放在 /etc/mysql/debian.cnf。
# 1. 讀取密碼
cat /etc/mysql/debian.cnf
# [client]
# user = debian-sys-maint
# password = xxxxxxxx
# 2. 以維護賬戶登入
mysql -u debian-sys-maint -p
# 輸入上述密碼
# 3. 修改 root 密碼
UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
# 4. 用新密碼登入驗證
mysql -u root -p
service mysql stop / net stop mysqlmysqld_safe --skip-grant-tables --skip-networking &(--skip-networking 禁止外部連入,安全第一)mysqld --skip-grant-tables --skip-networkingmysql -u root
USE mysql;
UPDATE user SET Password=PASSWORD('newpassword') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
--skip-networking,防止無授權訪問。FLUSH PRIVILEGES 刷新權限緩存。init-file 方式(將 SQL 寫入文件啟動時加載),記得啟動後刪除文件防洩露。