首頁 >資料庫 >mysql教程 >為什麼Docker中設定了MYSQL_ROOT_PASSWORD後,MySQL Root用戶仍出現拒絕存取的情況?

為什麼Docker中設定了MYSQL_ROOT_PASSWORD後,MySQL Root用戶仍出現拒絕存取的情況?

DDD
DDD原創
2024-12-20 08:20:11442瀏覽

Why Does

MySQL_ROOT_PASSWORD 已設置,但用戶'root'@'localhost' 的訪問被拒絕(使用密碼:YES)

在Docker 化的MySQL 環境中,設定MYSQL_ROOT_PASSWORD環境變數不足以確保對資料庫的存取。這是因為,如果 db_data 磁碟區已包含現有安裝,則映像將不會初始化新資料庫。

故障排除:

  1. 檢查資料庫是否已在db_data 磁碟區中初始化: 如果您使用預先存在的捲啟動容器,則環境變數不會有任何效果,資料庫不會被初始化。
  2. 刪除 db_data 磁碟區強制初始化:

    • 執行 docker-compose down - v 刪除現有磁碟區。
    • 執行docker-compose up -d 以使用新磁碟區啟動容器並初始化
  3. 如果需要,轉換為綁定掛載:

    • 初始化資料庫後,您可以透過更改docker-compose.yml 中的volumes部分將磁碟區轉換為綁定掛載to:

    • 啟動容器前刪除綁定掛載位置的內容: rm -rf /host/path /to/db_data/*
  4. 檢查其他潛力問題:

    • 確保 MYSQL_ROOT_PASSWORD 變數設定正確。
    • 檢查防火牆設定以確保連接埠 3306 已開啟。
    • 驗證MySQL 服務正在執行容器。

以上是為什麼Docker中設定了MYSQL_ROOT_PASSWORD後,MySQL Root用戶仍出現拒絕存取的情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn