在以下 docker-compose.yml 中,如何在 MySQL 中添加帶有“GRANT ALL PRIVILEGES”的 DBA 帳戶(例如,用戶名:abc 密碼:123)?
我曾嘗試在 'MYSQL_PASSWORD: secret' 下添加 'MYSQL_DBA_USER: abc MYSQL_DBA_PASSWORD: 123' 但它不起作用。
services:
mysql-server:
container_name: mysql
ports:
- "18080:8080"
environment:
MYSQL_ROOT_PASSWORD: 12345
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: secret
image: mysql/mysql-server
wordpress:
image: wordpress:latest
container_name: wordpress
ports:
- "20080:80"
environment:
WORDPRESS_DB_HOST: mysql-server:3306
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: secret
depends_on:
- mysql-server
uj5u.com熱心網友回復:
如果您將任何以 .sql 或 .sh 結尾的 SQL 腳本檔案映射到/docker-entrypoint-initdb.d容器中的目錄中,它們將在創建資料庫時運行。
因此,如果您create-dba-user.sql在與 docker-compose 檔案相同的目錄中創建一個腳本,并像這樣將卷映射添加到您的 docker-compose 檔案
mysql-server:
container_name: mysql
ports:
- "18080:8080"
environment:
MYSQL_ROOT_PASSWORD: 12345
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: secret
volumes:
- ./create-dba-user.sql:/docker-entrypoint-initdb.d/create-dba-user.sql
image: mysql/mysql-server
然后您的腳本將在創建資料庫時運行。如果您有一個現有的資料庫,那么它將不會運行。但是您的撰寫檔案似乎沒有保留資料庫,因此每次運行時您都會擁有一個新資料庫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/334163.html
