docker安装mysql主从

docker安装mysql主从

启动主库:

1.docker run --name master -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.13

启动从库:

2.docker run --name slave -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.13

​--name 为容器指定名称,这里是master

-p 将容器的指定端口映射到主机的指定端口,这里是将容器的3306端口映射到主机的3306端口

-e 设置环境变量,这里是指定root账号的密码为root

-d 后台运行容器,并返回容器ID

docker 会自动去拉取对应版本的镜像

 

 

 

 

 

 

 3.docker ps -a

查看容器是否正常运行

 

 

 4.连接master 执行以下sq 授权复制权限的账号:

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY 'slave';
SHOW GRANTS FOR 'slave'@'%';

执行结果:

修改数据库配置文件(一下操作看懂之后 也可以直接去容器操作)

5.mkdir /usr/local/mysql/master

6.mkdir /usr/local/mysql/slave

7.docker cp master:/etc/mysql/my.cnf /usr/local/mysql/master/my.cnf

8.docker cp slave:/etc/mysql/my.cnf /usr/local/mysql/slave/my.cnf

9.vi /usr/local/mysql/master/my.cnf

添加以下两行配置项:

#开启二进制日志,设置server-id,server-id值唯一
log-bin=mysql-bin
server-id=1

10.vi /usr/local/mysql/slave/my.cnf

添加以下两行配置项:

#开启二进制日志,设置server-id,server-id值唯一
log-bin=mysql-bin
server-id=2

11.docker cp /usr/local/mysql/master/my.cnf master:/etc/mysql/my.cnf

12.docker cp /usr/local/mysql/slave/my.cnf slave:/etc/mysql/my.cnf

重启两个容器: docker restart master

        docker restart slave

13.连接slave 执行一下语句设置主从复制:

change master to master_host='宿主机ip',master_port=3306,master_user='slave',master_password='slave';
start slave;
show slave status;

 

 如果Slave_IO_State:Connecting to master 那说明配置有问题 可能是master的host  账号 密码配置错了 检查一下就重新设置一下

重新设置需先停掉从库运行:stop slave; 

 

 

测试同步:在master 新建库 新建表 然后去slave刷新一下看 是否同步成功

 

 好了 基本的mysql主从环境已经搭建完成,接下来就可以在业务上搞读写分离了 哈哈

 下一篇准备写:mysql从库设置全局只读,并创建普通账号

posted @ 2020-03-24 17:49  AmbitiousMice  阅读(389)  评论(0编辑  收藏  举报