使用docker容器配置主从mysql数据库

使用docker镜像安装mysql

  1. 下载镜像文件,docker pull mysql:5.7
  2. 启动容器,docker run -name mysql -p 3306:3306 -v /var/lib/mysql:/var/lib/mysql -e "MYSQL_ROOT_PASSWORD={rootpassword}" -d mysql:
    • -p表示对外放开的映射端口;
    • -e表示环境变量,需要注意的是必须设置root密码模式,模式有三种:MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD和MYSQL_RANDOM_ROOT_PASSWORD。
    • -d表示后台运行。

配置主从关系

  1. 这里定义主数据库IP为192.168.0.1,从数据库IP为192.168.0.2。
  2. 进入主数据库容器docker exec -ti mysql bash,进入数据库mysql -uroot -p,输入密码后,创建一个从数据库访问的用户create user 'repl'@'192.168.0.2' identified by 'repl123';,赋予权限grant replication slave on *.* to 'repl'@'192.168.0.2';,再flush一下flush privileges;
  3. 修改主数据库配置文件,一般为/etc/mysql/my.cnf,本文使用的镜像目录使用vim /etc/mysql/mysql.conf.d/mysql.cnf,添加如图配置。主数据库配置文件
    需要注意的是使用镜像启动的容器可能没有vim命令,如果出现该情况,可以使用apt-get update更新后apt-get install vim解决。如果update较慢可以参考apt-get更换为国内阿里云源
  4. 同样进入从数据库容器修改mysql.cnf文件。需要注意的是这个里的server-id一定要比主数据库的要大。从数据库配置文件
  5. 对日志路径赋权限chown -R mysql:mysql /var/log/mysql,注意这里如果不赋权限的话会导致重启数据库时启动失败。
  6. 重启数据库service mysql restart,重启数据库会导致docker容器没有执行程序被退出,使用docker start mysql启动数据库。
  7. 进入从数据库中执行change master to master_host='192.168.0.1', master_user='repl', master_log_pos=154, master_log_file='mysql-bin.000001',master_password='repl123';。master_log_file和master_log_pos的值可以在主数据库执行show master status;查看。查询maser_log_file和master_log_pos
  8. 启动从数据库模式start slave,查看主从状态show slave status \G,大功告成。!查看主从状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值