1. 前言
MySQL 是一個在資料庫管理領域中被廣泛使用的開源關聯式資料庫管理系統。為了維護資料庫的安全性,定期更換密碼是不可或缺的措施。特別是擁有管理員權限的使用者帳號,更容易成為網路攻擊的目標,因此必須定期更新密碼。本文將詳細解說如何安全地更改 MySQL 密碼,以及加強安全性的最佳實踐。
2. 為什麼需要更改 MySQL 密碼
2.1 作為安全防護的密碼更換
近年來,網路攻擊日益進階且手法更加複雜,資料庫遭受未經授權存取或資料外洩的風險持續增加。透過定期更換 MySQL 密碼,可以有效降低這些風險。尤其是具有管理員權限的帳號,對攻擊者來說是首要攻擊目標,因此建議設定強而有力的密碼並定期更換。
2.2 建議更改密碼的時機
建議至少每 6 個月更換一次密碼,但對於系統管理員或管理重要資料的使用者,應該更頻繁地更新。此外,當員工離職或懷疑密碼外洩時,必須立即更換密碼。
3. 更改密碼前需要確認的事項
3.1 確認必要的權限
更改密碼的前提是使用者必須擁有相應的權限。在 MySQL 中,root 使用者或具備管理員權限的帳號可以更改其他使用者的密碼。即使是一般使用者想要更改自己的密碼,也需要確認是否具備適當的權限。
3.2 確認 MySQL 版本
不同版本的 MySQL 使用的密碼更改指令有所不同。例如,在 MySQL 8.0 之後建議使用 ALTER USER
指令,而較舊版本則常使用 SET PASSWORD
。可以先透過以下指令確認版本:
mysql --version
由於不同版本可能不支援某些指令,因此需要選擇正確的方法。
4. 在 MySQL 中更改密碼的方法
4.1 使用 ALTER USER 指令更改密碼
在 MySQL 8.0 及以後版本,可以使用 ALTER USER
指令來更改使用者密碼。這是最推薦且安全、簡單的方法。具體指令如下:
ALTER USER '使用者名稱'@'localhost' IDENTIFIED BY '新密碼';
此指令會將指定使用者的密碼更改為新設定的密碼。更改後,請確認使用者能夠使用新密碼登入 MySQL。
4.2 使用 SET PASSWORD 指令更改密碼
在 MySQL 5.7 及之前的版本,常使用 SET PASSWORD
指令來更改密碼。具體操作如下:
SET PASSWORD FOR '使用者名稱'@'localhost' = PASSWORD('新密碼');
SET PASSWORD
適用於舊版本,會將密碼加密後保存,因此在安全性上仍然有效。但在 MySQL 8.0 以後則不建議使用,建議改用 ALTER USER
。
4.3 使用 mysqladmin 工具從命令列更改密碼
對熟悉命令列的系統管理員來說,可以使用 mysqladmin
指令來更改密碼。這是 MySQL 的管理工具,具體操作如下:
mysqladmin -u 使用者名稱 -p password '新密碼'
執行後系統會要求輸入目前的密碼,輸入後按 Enter 即可。這種方法也很適合用於 XAMPP、WAMP 等本地端環境。

5. 密碼管理的最佳實踐
5.1 設定強而有力的密碼
設定強密碼可以大幅降低被攻擊者猜測的風險。建議的密碼長度至少 12 個字元,並包含大寫字母、小寫字母、數字與符號。例如「P@ssw0rd!23」這類型式。也可以利用隨機密碼產生工具(如密碼產生器)來提升安全性。
5.2 設定密碼有效期限
MySQL 支援設定密碼有效期限,以強制使用者定期更新密碼。以下指令可設定使用者每 90 天必須更新一次密碼:
ALTER USER '使用者名稱'@'localhost' PASSWORD EXPIRE INTERVAL 90 DAY;
透過這樣的設定,可以避免長期使用舊密碼並提升安全性。
6. 更改密碼時常見問題與解決方法
6.1 權限錯誤的處理
如果在更改密碼時出現「權限錯誤」,可能是使用者權限不足。請嘗試使用 root 或具管理員權限的帳號重新登入並執行操作。同時,檢查 MySQL 設定檔(my.cnf
)中的權限設定也很重要。
6.2 版本不一致造成的錯誤
當 MySQL 版本過舊時,使用新指令可能會導致錯誤。例如在 MySQL 5.7 使用 ALTER USER
可能會出錯。此時可改用 SET PASSWORD
,或是將 MySQL 升級至最新版。
7. 總結
更改 MySQL 密碼是維護資料庫安全的基本措施。本文介紹了 ALTER USER
、SET PASSWORD
、mysqladmin
三種方法,建議依據版本與環境選擇合適的方式。此外,務必實施強密碼策略與密碼有效期限管理,以確保安全性。最後,對於更改密碼過程中可能出現的問題,也應掌握解決方法,以維持系統穩定與安全。