1、整体环境
此次使用虚拟机,每台虚拟机上安装docker,每个docker又安装了mysql5.7
宿主机系统 centos7
master: 192.168.0.103:3306
slave: 192.168.0.105:3306
2、安装mysql
docker run --dns 8.8.8.8 --dns 8.8.4.4 --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7
注意点:
- mysql部署在不同虚机上,端口默认3306即可。
- 为了docker容器与虚机相同网络,进行dns或–net:host设置。
启动报错:
解决方案如下:
修改配置文件:
vim /usr/lib/sysctl.d/00-system.conf
追加
net.ipv4.ip_forward=1
接着重启网络
[root@localhost mytomcat]# systemctl restart network
3、master配置文件配置
进入到容器内
docker exec -it xxxx /bin/bash
安装vim
apt-get update
apt-get install vim
修改my.cnf文件
[mysqld]
## 同一局域网内注意要唯一
server_id=100
## 开启二进制日志功能,可以随便取(关键)
log-bin=mysql-bin
重启mysql
service mysql restart
master数据库,用户授权
# 进入mysql
mysql -uroot -p
# 输入密码
#执行
GRANT all privileges on *.* TO 'root'@'%' identified by '123' with grant option;
GRANT REPLICATION slave,reload,super on *.* TO 'root'@'192.168.0.%' identified by '123';
FLUSH PRIVILEGES;
查看master状态
4、slave配置文件配置
参照3配置,进入到容器内、安装vim
修改my.cnf文件
[mysqld]
server-id = 2
log-bin=mysql-bin
relay-log = mysql-relay-bin
重启mysql
service mysql restart
slave设置
#进入mysql
mysql -uroot -p
# 从库设置,这里MASTER_LOG_FILE、MASTER_LOG_POS必须与master状态一致。
CHANGE MASTER TO
MASTER_HOST = '192.168.0.103',
MASTER_USER = 'root',
MASTER_PASSWORD = '123',
MASTER_PORT = 3306,
MASTER_LOG_FILE='mysql-bin.000002',
MASTER_LOG_POS=1805,
MASTER_RETRY_COUNT = 60,
MASTER_HEARTBEAT_PERIOD = 10000;
启动slave
mysql> slave stop;
mysql> slave start;
Query OK, 0 rows affected (0.04 sec)
查询slave状态 /G,将内容竖向显示)
show slave status \G;
至此,同步完成。