在 Ubuntu 系統上安裝 MySQL 資料庫作為開發測試環境時,若初始密碼設定過於隨意,久未使用便容易遺忘。本文記錄一套經實測可行的 Root 密碼重置流程,參考自國外技術文檔,比網上常見教程更可靠。
sudo /etc/init.d/mysql stopsudo mysqld_safe --skip-grant-tables &mysql -u rootCan't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' 錯誤,通常是 Socket 檔案權限或不存在導致。sudo touch /var/run/mysqld/mysqld.socksudo chown -R mysql:mysql /var/run/mysqldsudo chown -R mysql:mysql /var/lib/mysqlmysql -u root。成功後會顯示 MySQL Monitor 歡迎訊息。USE mysql;UPDATE user SET password=PASSWORD('新密碼') WHERE user='root';FLUSH PRIVILEGES;QUIT;sudo /etc/init.d/mysql stopsudo /etc/init.d/mysql startmysql -u root -p 輸入新設定的密碼,即可正常登入。MySQL 5.7 以上版本 password 欄位已改為 authentication_string,更新語法請改為:
UPDATE user SET authentication_string=PASSWORD('新密碼') WHERE user='root';
MySQL 8.0 更建議使用 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';