1、win7安装docker
安装好点击图标进行舒适化,他会自动去下载最新的boot2docker.iso,太慢。可以在点击运行之前,切断互联网。
成功
2、启动链接虚拟机
用ssh工具链接
账号:docker 密码:tcuser
3、用docker创建2个mysql实例
192.168.99.100:33061/主机
192.168.99.100:33062/从机
docker run --name mysql1 -p 33061:3306 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker run --name mysql2 -p 33062:3306 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
解释一下:创建启动容器名mysql1,虚拟机端口33061,容器端口3306,root密码1234,-d表示容器后台运行,版本5.7
执行后查看已经运行的实例
4、配置主库
此时已经可以用Navicat链接了
4.1 配置从机登录账户
Navicat中执行
GRANT REPLICATION SLAVE ON *.* to 'slave1'@'%' identified by '1234';
% 表示这个账户可以从任意地址登录,也可以给一个固定的 IP,表示这个账户只能从某一个 IP 登录。
4.2 开启binlog
mysqld.cnf文件
[mysqld]
log-bin=/var/lib/mysql/binlog // binlog 的位置只要操作权限
server-id=1 //集群中唯一的标识符
binlog-do-db = mesdb //需要同步的数据库
binlog-do-db = test1
binlog-do-db = test2
binlog-do-db = test3
docker exec -it mysql1 /bin/bash //进入mysql1容器
cd /etc/mysql/mysql.conf.d //切换目录
exit //退出
docker cp ./mysqld.cnf mysql1:/etc/mysql/mysql.conf.d/ //当前目录mysqld.cnf配置文件拷贝到容器1里面的配置目录
docker restart mysql1 //重启容器
5、从机配置
mysqld.cnf文件
[mysqld]
server-id=2
docker cp ./mysqld.cnf mysql2:/etc/mysql/mysql.conf.d/
docker restart mysql2
Navicat下执行
change master to master_host='192.168.99.100',master_port=33061,master_user='slave1',master_password='1234',master_log_file='binlog.000001',master_log_pos=154;
start slave;
show slave status;
Slave_IO线程负责把主库的bin日志(Master_Log)内容,抄写到从库的中继日志上(Relay_Log)。
Slave_SQL线程负责把中继日志上的语句在从库上执行一遍。