1. 簡介
MySQL 是許多網頁應用程式和資料庫系統中使用的關鍵工具。然而,在運作過程中,遇到「忘記密碼」或「不知道初始密碼」等情況,並不少見。此類問題可能對業務進度和資料庫安全性造成重大影響。
本篇文章將詳細說明如何確認 MySQL 的初始密碼,以及忘記密碼時的重設方法,以讓初學者也能輕鬆理解。此外,我們提供 Linux 環境和 Windows 環境的兩種對應步驟,讓讀者能根據實際環境取得適合的資訊。
此外,文章後半部還會介紹密碼政策的確認與變更方法,以及常見錯誤的因應之道。透過這些內容,您能全面學習如何更安全且高效地運作 MySQL。
閱讀本篇文章後,您將能夠理解並實作以下內容。
- MySQL 初始密碼的確認方法
- 忘記密碼時的重設步驟(Linux 和 Windows 對應)
- 疑難排解以及密碼政策的設定方法
請務必閱讀至最後,打造一個能安心使用 MySQL 的環境吧。
2. MySQL 初始密碼的確認方法
如果首次安裝 MySQL,預設會設定初始密碼。如果能夠確認此初始密碼,第一次登入或密碼變更作業就能順利進行。本節將具體說明 Linux 環境與 Windows 環境中初始密碼的確認方法。
2.1 Linux 環境中的初始密碼確認方法
在 Linux 環境中,可以透過確認 MySQL 安裝後產生的記錄檔來確認初始密碼。請依循以下步驟操作。
步驟:
- 開啟終端機。
- 執行下列指令,確認記錄檔內容。
sudo cat /var/log/mysqld.log | grep 'temporary password'
- 指令執行結果中,會與「temporary password」描述一同顯示初始密碼。
- 範例:
2025-01-19T10:45:32.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc12345!
- 在此情況下,
Abc12345!
即為初始密碼。
- 記下初始密碼,並在登入 MySQL 時使用。
注意事項:
- 初始密碼為了保護安全性而隨機產生。
- 首次登入後,必定會要求變更密碼,因此請設定新密碼。
2.2 Windows 環境中的初始密碼確認方法
在 Windows 環境中,可以透過 MySQL 初始設定時產生的記錄檔或安裝程式的畫面來確認初始密碼。請參考以下步驟。
步驟:
- 開啟安裝 MySQL 的目錄。
- 預設路徑通常如下。
C:ProgramDataMySQLMySQL Server X.XLogs
※ X.X 表示 MySQL 的版本號碼。
- 尋找名為
mysqld.log
的檔案。 - 使用記事本或任意文字編輯器開啟記錄檔。
- 在檔案內搜尋,找出「temporary password」關鍵字。
- 初始密碼會與「root@localhost」的描述一同顯示。
- 記下初始密碼,並在登入 MySQL 時使用。
補充:
- 依安裝程式而定,安裝過程中初始密碼可能會顯示在畫面上。此時,建議以螢幕截圖儲存畫面。
3. 忘記密碼時的處理方法
即使忘記了 MySQL 的密碼,也可以使用幾種方法來重設。本節將說明 Linux 環境和 Windows 環境中的密碼重設程序。所有方法都需要管理員權限,因此在執行時,請以系統管理員身分操作。
3.1 Linux 環境中的密碼重設方法
在 Linux 環境中,一般使用以安全模式(–skip-grant-tables 選項)啟動 MySQL 並設定新密碼的方法。
步驟:
- 停止 MySQL 服務
執行下列指令來停止 MySQL 服務。
sudo systemctl stop mysqld
- 以安全模式啟動 MySQL
在安全模式下,會跳過使用者驗證,因此可以不輸入密碼存取 MySQL。執行下列指令。
sudo mysqld_safe --skip-grant-tables &
- 登入 MySQL
安全模式啟動後,使用下列指令登入 MySQL。
mysql -u root
- 設定新密碼
執行下列 SQL 指令來設定新密碼。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
※ 請將 NewPassword123!
的部分替換為適當的新密碼。
- 重新啟動服務
密碼設定後,以一般模式重新啟動 MySQL 服務。
sudo systemctl stop mysqld
sudo systemctl start mysqld
- 使用新密碼確認登入
請確認可以使用設定的新密碼登入 MySQL。
3.2 Windows 環境中的密碼重設方法
在 Windows 環境中,可以使用 --init-file
選項啟動 MySQL 來重設密碼。
步驟:
- 停止 MySQL 服務
開啟服務管理員,並停止「MySQL 服務」。 - 建立重設用的 SQL 檔案
使用任意文字編輯器建立下列內容的 SQL 檔案(例如:reset_password.sql
),並儲存至適當的目錄。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
※ 請將 NewPassword123!
替換為希望的新密碼。
- 使用
--init-file
選項啟動 MySQL
以管理員權限開啟命令提示字元,並執行下列指令。
mysqld --init-file="C:path o
eset_password.sql"
※ 請將 C:path o eset_password.sql
替換為建立的 SQL 檔案的儲存路徑。
- 重新啟動服務
以一般模式重新啟動 MySQL。在服務管理員中重新啟動服務,或執行下列指令。
net start mysql
- 使用新密碼確認登入
請確認可以使用設定的新密碼登入 MySQL。
4. 密碼原則的確認與設定
MySQL 為了確保密碼的安全性,提供了「密碼原則」功能。透過此功能,可以設定最低複雜度、長度等標準。本節將說明目前原則的確認方法,以及必要時的設定變更步驟。
4.1 密碼原則的確認方法
要確認目前的密碼原則,請使用 validate_password
外掛。此外掛啟用時,MySQL 會根據設定的原則驗證密碼。
步驟:
- 登入 MySQL。
mysql -u root -p
- 為了確認目前的原則設定,請執行下列指令。
SHOW VARIABLES LIKE 'validate_password%';
- 執行結果將顯示下列設定項目。
- validate_password.policy: 密碼原則的強度等級
- 0 (LOW): 僅允許英數字
- 1 (MEDIUM): 要求英數字與特殊字元
- 2 (STRONG): 要求英數字、特殊字元、英大寫字母、英小寫字母
- validate_password.length: 密碼的最低字元數
- validate_password.mixed_case_count: 要求大寫・小寫的最低數量
- validate_password.number_count: 數字的最低必要數量
- validate_password.special_char_count: 特殊字元的最低必要數量
4.2 密碼原則的設定變更
依需要,可以緩和或強化密碼原則。以下顯示範例。
變更原則設定的步驟:
- 登入 MySQL。
mysql -u root -p
- 執行變更目前設定的 SQL 指令。 範例 1: 緩和原則(變更為 LOW 等級)
SET GLOBAL validate_password.policy = 0;
SET GLOBAL validate_password.length = 8;
範例 2: 強化原則(變更為 STRONG 等級)
SET GLOBAL validate_password.policy = 2;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.special_char_count = 2;
- 確認設定已套用。
SHOW VARIABLES LIKE 'validate_password%';
注意事項:
- 建議在
my.cnf
或my.ini
檔案中記載設定,以在 MySQL 服務重新啟動後仍維持。 - 範例:
[mysqld]
validate_password.policy=1
validate_password.length=10
4.3 設定變更時的考量事項
- 安全性與便利性的平衡
強化密碼原則可提升安全性,但管理可能變得繁瑣。特別是在新手較多的環境中,應避免不必要的嚴格原則。 - 運作時的影響
若現有使用者不符合新原則,則在原則變更後更新密碼時會發生錯誤。變更前請確認影響範圍。 - 防止密碼重複使用
在運作環境中,也請考慮啟用防止過去使用過密碼重複使用的功能。
5. 疑難排解
MySQL 的密碼確認或重設手續在執行時,可能會發生預期外的錯誤。本節將詳細說明常見問題的範例及其解決方法。
5.1 常見錯誤及其原因
錯誤 1: 權限錯誤(Access Denied for User)
- 原因: 在登入 MySQL 時指定的使用者名稱或密碼錯誤,或是缺少必要的權限時會發生。
- 解決方法:
- 確認是否使用正確的使用者名稱和密碼。
- 使用 root 使用者登入,或是向管理員請求確認權限。
- 必要時,使用安全模式(–skip-grant-tables)啟動 MySQL 並修正權限。
錯誤 2: MySQL 服務無法啟動
- 原因: MySQL 的設定檔(
my.cnf
或my.ini
)有錯誤,或是磁碟空間不足時會發生。 - 解決方法:
- 確認 MySQL 的錯誤記錄檔。
- Linux 的情況:
/var/log/mysqld.log
- Windows 的情況:
C:ProgramDataMySQLMySQL Server X.XLogsmysqld.log
- Linux 的情況:
- 如果設定檔有錯誤,則進行修正。特別是確認新添加的設定是否正確。
- 如果磁碟空間不足,則刪除不必要的檔案或擴充儲存空間。
- 修正後,重啟服務。
bash sudo systemctl restart mysqld
錯誤 3: 密碼變更未反映
- 原因: 密碼變更後,權限表格可能未更新。
- 解決方法:
- 執行密碼變更指令後,使用下列指令更新權限表格。
sql FLUSH PRIVILEGES;
- 重啟 MySQL 服務,並使用新密碼嘗試登入。
5.2 安全模式下的復原
如果上述解決方法無法解決問題,則可以使用安全模式嘗試復原。
手續:
- 停止 MySQL 服務。
sudo systemctl stop mysqld
- 以安全模式啟動 MySQL。
sudo mysqld_safe --skip-grant-tables &
- 在安全模式下登入 MySQL,並修正有問題的使用者權限或密碼。
- 修正後,結束安全模式並以一般模式重啟 MySQL。
sudo systemctl restart mysqld
5.3 錯誤記錄的使用方法
MySQL 的錯誤記錄是疑難排解中最重要資訊來源之一。請依下列手續確認錯誤記錄,並用於問題解決。
手續:
- 確認錯誤記錄的位置。
- Linux 的情況(一般路徑):
/var/log/mysqld.log
- Windows 的情況:
C:ProgramDataMySQLMySQL Server X.XLogsmysqld.log
- 顯示記錄檔。
tail -n 100 /var/log/mysqld.log
※ 若要確認最新的錯誤,可以添加 -f
選項來即時監視。
tail -f /var/log/mysqld.log
- 閱讀記錄訊息,並特定錯誤的原因。
5.4 問題無法解決時的因應措施
- 參考官方文件
MySQL 的官方文件刊載了各版本的詳細疑難排解資訊。
MySQL 官方文件 - 利用支援論壇
在社群論壇或 Stack Overflow 搜尋類似問題,並尋找解決方案。 - 諮詢專家
如果問題無法解決,請諮詢系統管理員或 MySQL 專家。

6. FAQ
MySQL 的密碼管理和重設相關作業中,可能會產生各種疑問或問題。本節假設讀者可能提出的問題,並以易懂的方式說明各自的解決方案。
Q1: 初期密碼找不到時該怎麼辦?
A1:
如果找不到 MySQL 的初始密碼,請試試以下步驟。
- 重新確認日誌檔案
- Linux 的情況:
/var/log/mysqld.log
- Windows 的情況:
C:ProgramDataMySQLMySQL Server X.XLogsmysqld.log
初始密碼通常會連同「temporary password」這段描述記錄在日誌檔案中。
- 確認安裝程式的畫面
在 Windows 環境中,MySQL 安裝程式可能會顯示初始密碼。請確認安裝直後是否有拍攝畫面截圖。 - 考慮重新安裝
如果實在找不到初始密碼,可以解除安裝 MySQL 並重新安裝,藉此再次取得初始密碼。
Q2: 為什麼重設密碼後還是無法登入?
A2:
即使重設了密碼仍無法登入時,請確認以下事項:
- 確認使用者名稱和主機名稱
- MySQL 中,使用者名稱和主機名稱的組合非常重要(例如:
'root'@'localhost'
)。使用'%'
時,將允許從所有主機存取。 - 確認使用者清單的指令:
sql SELECT User, Host FROM mysql.user;
- 忘記更新權限表格
重設密碼後若未更新權限表格,新密碼就不會生效。請執行以下指令。
FLUSH PRIVILEGES;
- 重新啟動 MySQL 服務
重設密碼後,請重新啟動 MySQL 服務再試著登入。
sudo systemctl restart mysqld
Q3: 可以停用密碼原則嗎?
A3:
可以停用密碼原則,但這會增加安全性風險,因此請慎重考量。以下步驟可以停用 validate_password
外掛。
- 登入 MySQL。
mysql -u root -p
- 執行停用外掛的指令。
UNINSTALL PLUGIN validate_password;
- 確認設定已停用。
SHOW PLUGINS;
注意:
此操作將允許簡單的密碼,特別是在生產環境中,請加強其他安全措施作為替代。
Q4: 重設密碼過程中出現錯誤時的因應方式是?
A4:
關於重設過程中的錯誤,請參考以下步驟。
- 確認錯誤訊息
- 檢查錯誤日誌以確認詳細訊息。
- Linux 的情況:
/var/log/mysqld.log
- Windows 的情況:
C:ProgramDataMySQLMySQL Server X.XLogsmysqld.log
- Linux 的情況:
- 以安全模式修正
如果錯誤持續發生,請以安全模式(--skip-grant-tables
)啟動 MySQL,並修正有問題的設定。 - 刪除現有使用者並重新建立
如果問題與使用者相關,刪除該使用者並重新建立也是一個有效方法。
DROP USER 'root'@'localhost';
CREATE USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
Q5: 如果與其他管理者共用,變更密碼會有什麼影響?
A5:
如果有多位管理者,變更密碼可能會產生以下影響。
- 影響範圍
如果其他管理者共用的系統或指令碼使用舊密碼,就會發生連線錯誤。 - 事先通知
變更密碼時,請事先通知其他管理者,並視需要請他們更新指令碼或設定。 - 變更後的協作
變更後,請確保安全共用新密碼的方法(例如:使用加密訊息工具)。
7. 總結
MySQL 的密碼確認與重設,是資料庫運作中不可避免的重要作業之一。本文為了讓初學者也能實踐,從初始密碼的確認方法,到忘記密碼時的重設步驟,進一步到密碼政策的設定與疑難排解,都全面性地說明了。
本文學到的主要要點
- 初始密碼的確認方法
- 在 Linux 環境中,確認
/var/log/mysqld.log
,在 Windows 環境中,確認mysqld.log
檔案,即可取得初始密碼。
- 忘記密碼時的重設方法
- 分別學習了 Linux 和 Windows 環境下,使用安全模式或
--init-file
選項的重設步驟。
- 密碼政策的確認與設定
- 說明了活用
validate_password
外掛程式,依環境設定政策的做法。
- 疑難排解
- 具體介紹了權限錯誤或服務啟動問題等,常見錯誤的因應方法。
- 在 FAQ 中補充解決方法
- 提供了密碼確認與重設時的疑問與問題的解答。
對讀者的建議
為了安全且有效率地運作 MySQL,請注意以下要點。
- 徹底密碼管理
請設定強力的密碼,並適當保管。此外,定期變更密碼可強化安全性。 - 活用錯誤記錄
發生問題時,請養成確認錯誤記錄以特定原因的習慣。 - 參考官方文件
MySQL 的官方資源提供了針對版本的最新資訊。必要時請參考。
下一個步驟
透過實踐本文介紹的步驟,您應該已經掌握了 MySQL 基本的密碼管理和問題解決技能。作為下一個步驟,不妨考慮以下事項。
- 進一步強化安全性
透過防火牆設定或 SSL 連線的使用,提升資料庫整體的安全性。 - 檢討備份運作
確立定期備份的排程,讓資料遺失的防備萬無一失。
請適當管理 MySQL,實現無問題的舒適運作。本文若能成為您的助力,將不勝榮幸。