GTID模式:Ubuntu16.04 Mysql主从同步 GTID模式_LP的博客-CSDN博客
环境
主库master 虚拟机01 msyql5.7
从库slave 虚拟机02 mysql5.7
主从同步配置
--主库master
1.配置修改 /etc/mysql/mysql.conf.d/mysqld.cnf,修改以下内容
bind-address = 0.0.0.0 #默认是127.0.0.1;允许远程访问(注意防火墙配置,以免安全风险)
server-id = 1 #服务器唯一标识
log-bin = /var/log/mysql/mysql-bin.log #开启MySQL二进制日志
binlog_do_db = db4 #允许指定库记录二进制日志,注释则都允许(指定多个需添加多行)
binlog_ignore_db = mysql #禁止指定库记录二进制日志(指定多个需添加多行)
2.重启mysql
service mysql restart
3.登录mysql并创建远程登录用户,只读权限
create user 'slave'@'%' identified by '123456';
grant replication slave on *.* to 'slave'@'%';
flush privileges;
4.查看日志文件
show master status;
记录File值:mysql-bin.00002 和 Position值:154
--从库slave
1.配置修改 /etc/mysql/mysql.conf.d/mysqld.cnf
#修改以下内容
server-id = 2 #服务器唯一标识,要唯一
log-bin = /var/log/mysql/mysql-bin.log #开启MySQL二进制日志
#replicate-do-db = #设定需要复制的数据库
#replicate-ignore-db = #设定需要忽略的复制数据库
#replicate-do-table = #设定需要复制的表
#replicate-ignore-table = #设定需要忽略的复制表
#replicate-wild-do-table = #同replication-do-table功能一样,但是可以通配符
#replicate-wild-ignore-table = #同replication-ignore-table功能一样,但是可以加通配符
2.重启mysql服务
service mysql restart
3.登录mysql并依次执行
--连接主库master
--master_host:主库地址;master_user:主库远程登录名;master_password:主库远程登录密码;
--master_log_file:上面记录的File值;master_log_pos:上面记录的Position值。
change master to master_host='192.168.146.128', master_user='slave', master_password='123456', master_log_file='mysql-bin.000002', master_log_pos=154;
--开启slave服务
start slave;
4.查看slave信息 (Slave_IO_Running和Slave_SQL_Running都为yes才表示同步成功)
show slave status\G
停止slave同步命令
stop slave;
问题:Slave_IO_Running:Connecting; Slave_SQL_Running:Yes
解决:Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除_mbytes的博客-CSDN博客
问题:Slave_IO_Running:Yes; Slave_SQL_Running:No
解决一(忽略错误):
# 停止slave
stop slave;
# 跳过错误步数
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
# 开启slave
start slave;
解决二(重做主从):
测试
连接主服务器的主库
create table tb (id int(11), username varchar(255));
insert into tb (id, username) values (1, 'tom');
insert into tb (id, username) values (2, 'jerry');
查看从服务器的从库
OK.