# Module4Part1 **Repository Path**: john_hi/module4-part1 ## Basic Information - **Project Name**: Module4Part1 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-05 - **Last Updated**: 2021-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1.拉取centos镜像 docker pull centos 2.运行容器, 容器名为centos7 docker run -dit --privileged --name=centos7 centos /usr/sbin/init 3.进入容器,安装常规软件 docker exec -it centos7 /bin/bash 安装wget yum install -y wget #安装ifconfig yum install net-tools.x86_64 安装mysql yum install -y mysql-server 4.提交镜像,作为备用的mysql镜像.镜像名john/mysql docker commit -a "john" -m "mysql" centos7 john/mysql 运行docker容器, 一个mysql做为主库。 两个mysql作为从库 master容器mysql-master: docker run -dit --privileged --name=mysql-master john/mysql /usr/sbin/init slave1容器:mysql-slave1 docker run -dit --privileged --name=mysql-slave1 john/mysql /usr/sbin/init slave2容器:mysql-slave2: docker run -dit --privileged --name=mysql-slave2 john/mysql /usr/sbin/init 进入master容器进行配置: 1、配置my.cnf #打开binlog log_bin=mysql-bin server-id=1 binlog-ignore-db=performance_schema binlog-ignore-db=information_schema binlog-ignore-db=sys 2、重启mysql systemctl restart mysqld grant replication slave on *.* to 'root'@'%'; grant all privileges on *.* to 'root'@'%'; flush privileges; 查看master状态 show master status +------------------+----------+--------------+-------------------------------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+-------------------------------------------+-------------------+ | mysql-bin.000001 | 156 | | performance_schema,information_schema,sys | | +------------------+----------+--------------+-------------------------------------------+-------------------+ 进入slave容器进行配置 1.配置my.cnf server-id=2 #relay_log=mysql-relay-bin read_only=1 2. change master to master_host='172.17.0.3',master_port=3306,master_user='root',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=156; show slave status 如果有报错Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. 需要更改uuid find -name auto.cnf 打开/var/lib/mysql/auto.cnf文件, 修改uuid 如果是Slave_SQL_Running:no, 执行以下步骤 stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; start slave; show slave status\G 半同步复制 master docker: install plugin rpl_semi_sync_master soname 'semisync_master.so' show variables like '%semi%' set global rpl_semi_sync_master_enabled=1; set global rpl_semi_sync_master_timeout=1000; slave docker: install plugin rpl_semi_sync_slave soname 'semisync_slave.so' set global rpl_semi_sync_slave_enabled=1; stop slave; start slave;