首頁 >資料庫 >mysql教程 >儘管設定了 MYSQL_ROOT_PASSWORD,為什麼我的 Docker MySQL 容器仍拒絕存取?

儘管設定了 MYSQL_ROOT_PASSWORD,為什麼我的 Docker MySQL 容器仍拒絕存取?

Barbara Streisand
Barbara Streisand原創
2024-12-03 09:05:11423瀏覽

Why Does My Docker MySQL Container Deny Access Despite Setting MYSQL_ROOT_PASSWORD?

儘管設定了MYSQL_ROOT_PASSWORD,但在Docker 容器中存取MySQL 仍被拒絕

簡介

簡介

問題

在容器初始化期間,如果卷映射到資料庫資料目錄(在本例中為db_data)已經包含資料庫檔案系統,容器將尊重現有資料庫並忽略與初始化相關的任何環境變量,包括MYSQL_ROOT_PASSWORD。因此,嘗試使用配置的憑證存取資料庫將會失敗。

解決方案

要解決此問題,請確保在沒有預先配置的情況下啟動容器現有資料庫磁碟區。這可以透過使用以下命令刪除資料卷來實現:

docker-compose down -v
隨後,使用 docker-compose up -d 命令再次啟動容器。此程序將刪除現有資料庫內容,並使用 MYSQL_ROOT_PASSWORD 中儲存的指定 root 密碼初始化新資料庫。

注意: 小心,因為上述指令將永久刪除 MYSQL_ROOT_PASSWORD 中任何預先存在的資料db_data 磁碟區。如果您希望保留此數據,請在執行這些命令之前進行備份。

綁定掛載的替代方法

如果使用綁定掛載,請透過導航手動刪除其內容到綁定定掛載路徑並執行以下指令:

rm -rf /path/to/bind/mount/*

其他相關資訊

此方法適用於MySQL docker映像。然而,值得注意的是,其他官方資料庫 Docker 映像,包括 PostgreSQL 和 MongoDB 的映像,都遵循類似的初始化過程,並且在使用預先存在的資料卷時可能會遇到類似的問題。

以上是儘管設定了 MYSQL_ROOT_PASSWORD,為什麼我的 Docker MySQL 容器仍拒絕存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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