我正在使用以下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;"
编辑:此选项未经测试。
使用GRANT命令将
.sql
文件挂载(即添加卷),或者使用.sh
命令将mysql -u ...
文件挂载到容器上的/docker-entrypoint-initdb.d
文件夹中。编辑:通过@jonnie测试的工作
sh
文件内容是mysql --user="root" --password="rootpass" -e "GRANT ALL PRIVILEGES ON *.* TO 'snap' with grant option;"