docker-compose部署mysql,并设置帐号,密码,端口

1.需求:

	一个项目需要用docker部署mysql,并且mysql的
	项目数据库名:mproject,帐号:mao,密码为mao123,端口为:33307

网上一般方式:

在这里插入图片描述

	网上找的都是默认帐号为root,另外配置的用户名和密码也是错误的,以这种方式如果要将数据库的账户改为mao有两种方式:
方式一:在容器启动时通过初始化sql新增用户名mao和密码mao123
方式二:在容器启动之后进入mysql,新增用户名mao和密码mao123
这两种方式都比较繁琐。
于是去mysql官网探索一番之后发现了新方法。下面是自己的docker-compose.yml搭配讲解

2.docker-compose.yml配置

version: "3" 
services:   
  mysql:
   image: mysql:8.0
   ports:
     - 33307:3306                             #将外部端口33307映射为内部默认创建的3306
   volumes:
     - ./data/mysql:/var/lib/mysql            #将容器中运行的mysql数据保存到宿主机,防止容器删除后数据丢失
     - ./init:/docker-entrypoint-initdb.d/    #/docker-entrypoint-initdb.d/这是数据库提供的初始化目录,数据库在启动时会默认执行当期目录下的以.sql或者.sh结尾的文件。
   environment:
     MYSQL_ROOT_PASSWORD: root                #数据库初始话为root用户设置的默认密码
     MYSQL_DATABASE: mproject                 #数据库名
     MYSQL_USER: mao                          #自定义数据库的用户,权限只作用于MYSQL_DATABASE配置的数据库
     MYSQL_PASSWORD: mao123                   #自定义数据库的用户,权限只作用于MYSQL_DATABASE配置的数据库
   restart: on-failure                    	  #重启条件 
   networks:
   	- my_pro 
networks: 
  my_pro:
    driver: bridge
    ipam:
      config: 
        - subnet: 192.168.0.0/16   			#配置子网

3.配置说明:

1./docker-entrypoint-initdb.d/
	这个目录是数据库官方提供的初始目录,以.sql .sh .bat结尾的文件放到这个目录下面,
	在数据库启动的时候会自动执行。
2.environment 这是mysql官方提供的针对数据库启动时的配置

在这里插入图片描述

上图是mysql官网针对MYSQL_DATABASE,MYSQL_USER,MYSQL_PASSWORD三者的关系描述:
	MYSQL_USER,MYSQL_PASSWORD是对MYSQL_DATABASE表有作用,如果只配置了MYSQL_USER,MYSQL_PASSWORD,那配置将无任何效果。
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值