服务器快速部署--使用Docker部署MySQL主从复制

如何使用Docker部署MySQL就不说了,请参考我的另一篇文章服务器快速部署--使用Docker部署MySQL,本篇就使用之前的方法部署两个MySQL到不同的虚拟机上。

主数据库Master配置

操作系统: CentOS 7
IP地址: 192.168.1.212
MySQL版本: MySQL 5.7
容器名称: felix-mysql-master

从数据库Slave配置

操作系统: CentOS 7
IP地址: 192.168.1.202
MySQL版本: MySQL 5.7
容器名称: felix-mysql-slave

参照服务器快速部署--使用Docker部署MySQL使用Docker部署完两台数据库服务器并启动之后,如果你的从库是由主库克隆而来的话,需要修改从库/mysql/data/auto.cnf中的server-uuid,不与主库的server-uuid重复即可。

接下来开始进行配置

修改配置文件

修改主库配置文件

vi /mysql/data/my.cnf
#修改server-id = 1

修改从库配置文件

vi /mysql/data/my.cnf
#修改server-id = 10

在主库中添加用户用来提供给从库进行访问

进入主库的docker容器

docker exec -it felix-mysql-master bash

进入主库数据库

mysql -uroot -p
#输入主库mysql的root的密码

添加用户并赋予权限

GRANT ALL PRIVILEGES ON *.* TO 'felix'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
#然后退出数据库,退出容器

重启容器

docker restart felix-mysql-master

再次进入容器并进入主数据库

docker exec -it felix-mysql-master bash
mysql -uroot -p
#输入主库mysql的root的密码

进入数据库后,查看master的状态

show master status;

下图表示成功

image

为从库配置master的信息

进入从库的docker容器

docker exec -it felix-mysql-slave bash

进入从库数据库

mysql -uroot -p
#输入从库mysql的root的密码

配置master信息

CHANGE MASTER TO MASTER_HOST='192.168.1.212',MASTER_USER='felix',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mybinlog.000009',MASTER_PORT=3306;
#然后退出数据库,退出容器

重启容器

docker restart felix-mysql-slave

再次进入容器并进入从数据库

docker exec -it felix-mysql-slave bash
mysql -uroot -p
#输入从库mysql的root的密码

进入数据库后,查看从库的状态

show slave status\G;

下图表示成功

image

测试主从配置是否成功

进入主数据库中,创建一个测试数据库

image

然后进入从数据库show databases;,查看是否真正的同步了

image

可见,在主数据库做出修改之后,从数据库中的内容也改变了,达到了主从同步的目的。后面的章节会进行读写分离、水平/垂直切分、数据库集群的讲解,欢迎关注。

你可能感兴趣的:(服务器快速部署--使用Docker部署MySQL主从复制)