我正在使用以下 docker-compose 设置:
db:
image: mysql:5.5
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_USER: userx
MYSQL_PASSWORD: password
MYSQL_DATABASE: mydb
我需要能够使用以下命令更新用户的权限:
GRANT ALL PRIVILEGES ON *.* TO 'userx' with grant option;
但我不想更改默认命令,因此我可以继续使用上面的设置。但我真的不知道最好的方法是什么。
我尝试根据上面的内容创建自己的图像:
FROM mysql:5.5
CMD mysqld && mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'snap' with grant option;"
谁能给我指出正确的方向
最佳答案
两种可能的解决方案。
自定义图像
FROM mysql:5.5 RUN mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'snap' with grant option;"
编辑:此选项未经测试。
- 安装(即添加卷)
.sql
使用 GRANT 命令或.sh
文件文件mysql -u ...
命令/docker-entrypoint-initdb.d
容器上的文件夹。
编辑:工作sh
文件内容,经 @jonnie 测试为
mysql --user="root" --password="rootpass" -e "GRANT ALL PRIVILEGES ON *.* TO 'snap' with grant option;"
关于mysql - 如何在不中断默认行为的情况下扩展默认的 docker 镜像命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36319155/