重裝 MySQL 時,安裝精靈經常要求輸入舊的 root 密碼,否則會報錯 Error 1045。這通常是因為系統殘留了舊的資料目錄。以下提供兩種實測有效的解決方法。
MySQL 的設定檔與資料檔預設存放在 C:\Documents and Settings\All Users\Application Data\MySQL(Windows XP/2003)或 C:\ProgramData\MySQL(Vista/7/10/Server 2008+)。只要刪除該目錄下的 MySQL 資料夾,再重新執行安裝程式,就不會再提示舊密碼。
%ProgramData% 或 %ALLUSERSPROFILE%\Application Data 進入目錄。MySQL 資料夾,整個刪除(或改名備份)。注意:此法會清除所有現有資料庫,請先備份重要資料。
若不想刪除資料,可透過 --skip-grant-tables 啟動服務,直接在資料庫內更新密碼。以下以 Windows 為例,Linux 只需將 mysqld-nt 換成 mysqld_safe。
net stop MySQL5bin 目錄,啟動跳過權限的服務:mysqld-nt --skip-grant-tables &mysql -u root mysql123456):UPDATE user SET password=PASSWORD('123456') WHERE user='root';
FLUSH PRIVILEGES;mysqld-nt.exe 進程(必須執行,否則正常啟動會異常)。net start MySQL5方法一適合乾淨重裝、不需保留舊資料;方法二適合必須保留現有資料庫的情境。兩種皆經實測有效,可根據需求選擇。