目前,我正在使用以下简单的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中创建的用户。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我认为我们可以通过
MYSQL_INITDB来实现这一点 - 在MySQL容器中设置一个初始化脚本。首先,您可以像下面这样为MYSQL_INITDB添加一个环境变量
然后,您需要按照以下方式更新卷配置
在与您的docker-compose文件相同的目录中创建一个01.sql文件。
在这里查看官方文档:https://hub.docker.com/_/mysql/ 在Initializing a fresh instance子主题下。