首先拉取docker里myql镜像,如果没有安装docker,百度看下,比较简单。
docker pull mysql:5.7
然后启动容器,我这里分别启动了两个容器:
master(主):
docker run -p 3339:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
slave(从):
docker run -p 3340:3306 --name mysql-slaver-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
docker ps -a 查看正在运行的容器
配置主服务的相关配置:
docker exec -it 0b78 bash
进入容器内部:修改mysql的配置
vim /etc/mysql/my.cnf
添加一下内容:
server-id=100
log-bin=mysql-bin
修改之后保存,重启mysql服务
重启之后进入mysql 添加数据同步用户:
CREATE USER 'slave'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
slave服务mysql配置,进入my.cnf
server-id=101
log-bin=mysql-slave-bin
relay_log=edu-mysql-relay-bin
修改之后重启。
查看master mysql状态
show master status;
其中file 和position在下面的配置中需要:
在slave mysql中
执行:
change master to master_host='172.17.0.6', master_user='slave', master_password='123456', master_port=3306, master_log_file='mysql-bin.000003', master_log_pos= 154, master_connect_retry=30;
其中 host 为master的地址,master_log_file 为上图的file,master_log_pos 为上图的position;
slave查看状态:show slave status\G;
配置成功~
master新建库 master:
刷新slave: