在下面的docker-compose。我如何添加DBA帐户(例如,用户名:abc密码:123)与'GRANT ALL PRIVILEGES'给它在MySQL?
我已经尝试在'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
如果您将任何以。SQL或。sh结尾的SQL脚本文件映射到容器的目录/docker-entrypoint-initdb.d
中,它们将在创建数据库时运行。
如果你在docker-compose文件所在的目录下创建一个名为create-dba-user.sql
的脚本,并向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
当创建数据库时,脚本将运行。如果您有一个现有的数据库,那么它将不会运行。但是您的撰写文件看起来没有持久化数据库,因此每次运行都会有一个新的数据库。