mysql - 如何在不中断默认行为的情况下扩展默认的 docker 镜像命令

标签 mysql docker

我正在使用以下 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;" 

谁能给我指出正确的方向

最佳答案

两种可能的解决方案。

  1. 自定义图像

    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/

    相关文章:

    java - 运行 R scraper 脚本时出现 java.io.IOException 错误

    php - 隐藏或删除下拉列表中的条目

    mysql - 使用 SQL 确定文本字段的字数统计

    mySQL 连接行长不均匀的表

    c# - DbContext(DbConnection, bool) 拒绝访问

    mysql - 为什么IX锁与InnoDB中的另一个IX锁兼容?

    Docker 容器未正确使用 CPU

    docker - 如何写一个kubernetes pod配置来启动两个容器

    bash - Docker拒绝运行bash

    ruby-on-rails - rails docker-compose db :create db:migrate 的最佳实践