数据库dockerDocker学习

docker mysql 主从

2019-02-23  本文已影响118人  銭兎孑

服务器: centos7.6

一、 准备开始

1.安装 docker

 yum install docker
  1. 拉取mysql镜像
docker pull mysql
  1. 启动一个镜像,从镜像中拿到my.cnf
docker run –name mysql_test -d mysql
docker cp mysql_test:/etc/mysql /root/master
  1. 删掉这个测试镜像实例了。
docker stop mysql_test
docker rm mysql_test

二、环境搭建

  1. 首先,复制/root/master三份,分别命名为master slave1 slave2 ,编辑my.conf 增加以下参数 , server-id 不能重复
[mysqld]
log-bin = mysql-bin
server-id = 10086
  1. 启动一个实例,作为主库。
docker run –name mysql_master -e MYSQL_ROOT_PASSWORD=123456 -v /root/master:/etc/mysql -p 3306:3306 -d mysql

3.查看主库ip

docker inspect mysql_master | grep IPAddress

4.试图登录mysql

mysql -uroot -p123456 -h 172.17.0.2

5.查看并记录主库信息

show master status;
+——————+———-+————–+——————+——————-+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+——————+———-+————–+——————+——————-+
| mysql-bin.000003 | 437 | | | |
+——————+———-+————–+——————+——————-+

6.启动新的镜像作为从库

docker run –name mysql_slave1 -e MYSQL_ROOT_PASSWORD=123456 -v /root/slave1:/etc/mysql -p 3311:3306 -d mysql
docker run –name mysql_slave2 -e MYSQL_ROOT_PASSWORD=123456 -v /root/slave2:/etc/mysql -p 3312:3306 -d mysql

7.登录到从库1

mysql -uroot -p123456 -h 172.17.0.3

8.配置从库,此处简化,未在主库中配置授权账户,直接使用了root。437为第9部查询出来结果

mysql> change master to 
master_host=’172.17.0.2′,master_user=’root’,master_password=’123456′,master_log_file=’mysql-bin.000003′,master_log_pos=437;

9.启用从库进程

mysql> start slave;

10.查看从库状态

show slave status\G

若信息中Slave_IO_Running和Slave_SQL_Running全部是yes,则说明配置成功。若失败,信息中会有具体提示。

11.重复步骤8到10,将从库2也和主库同步。

提示:

若报错(Authentication plugin ‘caching_sha2_password’ cannot be loaded), 执行下面代码

1.首先进入容器中

docker exec -it mysql_master /bin/bash

2.登录到mysql

mysql -uroot -p123456

3.修改mysql验证方式

mysql> ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘123456’;

文章转载地址:
http://jan.cocophp.com/2019/02/21/mysql%E4%B8%BB%E4%BB%8E%E7%9A%84%E7%AE%80%E5%8D%95%E6%90%AD%E5%BB%BA/

上一篇下一篇

猜你喜欢

热点阅读