开发者社区> 问答> 正文

怎么在docker-compose.yml中配置mysql自动修改权限呢 ?

怎么在docker-compose.yml中配置mysql自动修改权限呢 ?

展开
收起
人一月 2024-08-11 15:26:37 24 0
1 条回答
写回答
取消 提交回答
  • 要在docker-compose.yml中配置MySQL自动修改权限,您不需要直接指定your_user为数据库的root用户名,而是应该创建一个新的用户并为之分配权限。

    以下是配置示例:

    1.准备初始化SQL脚本: 在项目根目录下创建一个文件夹,例如initdb, 然后在该文件夹内创建一个SQL脚本,如init.sql。在这个脚本中,您将定义用户和权限,例如: sql CREATE DATABASE IF NOT EXISTS your_database; CREATE USER 'your_app_user'@'%' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON your_database.* TO 'your_app_user'@'%'; FLUSH PRIVILEGES; 这里,your_app_user是您应用程序将用来连接数据库的用户名称,而不是root用户。

    2.修改docker-compose.yml: 在docker-compose.yml文件中,配置MySQL服务以使用上一步创建的初始化脚本。确保volume部分映射了包含初始化脚本的文件夹: yaml version: '3' services: mysql: image: mysql:latest volumes: - ./initdb:/docker-entrypoint-initdb.d environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: your_database ports: - "3306:3306" 当MySQL容器启动时,它会自动执行/docker-entrypoint-initdb.d目录下的所有.sql脚本,从而自动创建用户和分配权限。

    请注意,使用'%'作为主机名允许用户从任何IP地址连接,这在某些环境中可能不符合安全要求。根据实际情况,您可能需要将其替换为特定IP或Docker网络的子网范围。

    2024-08-11 16:53:50
    赞同 2 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
应用 Docker 进行持续交付:用技术改变交付路程 立即下载
从Docker到容器服务 立即下载
构建基因数据应用生态系统—— docker in Bio/informatics 立即下载