系统环境:
master:192.168.1.40
OS:CentOS Linux release 7.2.1511 (Core)
mysql:5.7.21
db:demodb
dbuser:test
dbpassword:test
slave:192.168.1.41
OS:CentOS Linux release 7.2.1511 (Core)
mysql:5.7.21
db:demodb
dbuser:test
dbpassword:test
一、主从同步
1、master:
新建一个用户backupAdmin,用以slave访问master的binlog。
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'backupAdmin'@'124.133.27.14' IDENTIFIED BY 'backupAdmin1_';
修改mysql的配置文件
vi /etc/my.cnf
在mysqld下添加如下信息
log-bin=mysql-bin
server-id=21495
binlog-do-db=demodb
其中 server-id必须为唯一的,其他的mysql服务器没有使用过,一般使用server的ip地址。
重启mysql服务。
查看状态,记录下日志文件的名称及位置
mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 608118299 | demodb | | |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql>
2、slave:
修改msyql的配置文件,在mysqld节点下添加如下信息。
server-id=192168140
log-bin=mysql-bin
replicate-do-db=demodb
#log_slave_updates=1
read_only = 1
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=1
#super_read_only=1
重启mysql服务。
mysql> stop slave io_thread;
mysql> change master to master_host='192.168.1.40',master_user='backupAdmin',master_password='backupAdmin',master_port=3306,
master_log_file='mysql-bin.000002',master_log_pos=608118299;
master_log_file:主服务器的日志文件名称
master_log_pos:日志文件游标位置
start slave;
查看slave的状态
show slave status\G;
二、半自动主从同步
需要安装两个插件
master:
install plugin rpl_semi_sync_master soname 'semisync_master.so';
修改mysql的配置文件/etc/my.cnf,添加如下信息。
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000 #此单位是毫秒
rpl_semi_sync_master_wait_point=AFTER_SYNC
查看插件安装状态
show global variables like '%rpl_semi%';
slave:
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
修改mysql配置文件,添加如下内容。
rpl_semi_sync_slave_enabled=1
查看插件安装状态
showstatus like "%rpl_semi%";
start slave;