如何在docker-compose檔案中啟用遠端存取mysql docker的root使用者?
P粉145543872
P粉145543872 2023-09-06 13:10:11
0
1
554

目前,我正在使用以下簡單的YAML檔案來啟動一個MySQL伺服器

version: '3.3' services: db: image: mysql/mysql-server restart: always environment: MYSQL_DATABASE: 'db' MYSQL_USER: 'user' MYSQL_PASSWORD: 'strongpasswordnobodycanguessorcrackatall' # Password for root access MYSQL_ROOT_PASSWORD: 'somethingevenmorestrongerthaneverbefore' ports: - '3306:3306' expose: - '3306' volumes: - compose-my-db volumes: - ./:compose-my-db:

然而,我必須連接到容器並使用以下命令:

將 *.* 上的所有內容授予 'c'@'%';刷新權限;

這樣可以給我所需的所有權限,並允許透過compose檔案中建立的使用者進行遠端連線。

我知道我可以修改my.cnf檔案或添加在mysqld初始化後運行的init腳本,但我希望在Docker-Compose中建立的用戶。

P粉145543872
P粉145543872

全部回覆 (1)
P粉144705065

我認為我們可以透過MYSQL_INITDB來實現這一點 - 在MySQL容器中設定一個初始化腳本。

首先,您可以像下面這樣為MYSQL_INITDB新增一個環境變數

MYSQL_INITDB: /docker-entrypoint-initdb.d/01.sql

然後,您需要按照以下方式更新磁碟區配置

volumes: - ./compose-my-db:/docker-entrypoint-initdb.d

在與您的docker-compose檔案相同的目錄中建立一個01.sql檔案。

GRANT ALL ON *.* TO 'c'@'%'; FLUSH PRIVILEGES;

在這裡查看官方文件:https://hub.docker.com/_/mysql/Initializing a fresh instance子主題下。

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!