环境
- ubuntu 18.04
- mysql 5.7
- xtrabackup 2.4
主设置
vi /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 1
log-bin = /var/log/mysql/mysql-bin
sudo systemctl restart mysql
配置远程用户
CREATE USER 'repl'@'10.0.0.0' IDENTIFIED BY '密码';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.0.0.0';
FLUSH PRIVILEGES;
安装xtrabackup
备份
从恢复
查看位置
cat /data/backup/xtrabackup_binlog_info
Mysql 从配置
CHANGE MASTER TO
MASTER_HOST='master.mysql',
MASTER_USER='repl',
MASTER_PASSWORD='',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000031',
MASTER_LOG_POS=7823661;
--启动
START SLAVE;
主错误 Failed on my_net_write()
#主日志
2019-03-26T06:33:32.069396Z 1113339 [Note] Start binlog_dump to master_thread_id(1113339) slave_server(2), pos(mysql-bin.000031, 7823661)
2019-03-26T06:34:32.125213Z 1113339 [Note] Aborted connection 1113339 to db: 'unconnected' user: 'repl' host: '10.0.0.0' (Failed on my_net_write())
错误阶段为主创建Dump binlog 线程后无法对从发送数据,造成的通讯错误
在排除从上没有开启防火墙,并且没有其他错误日志,主从可以互相登录,则有可能是下面的原因
服务器的网络接入层有限制,比如交换机,造成数据包拆分导致通讯错误
解决办法
#slave 服务器
ifconfig #查看mtu值
ifconfig ens192(网卡名称) mtu 1400(值) #减小MTU值
过程中用到的命令
-- 一般不需要变更配置
show global variables like "%timeout%";
set global net_write_timeout=60;
set global slave_net_timeout=60;
--查看主从状态
show master status;
show slave status;
--清除从信息
reset slave all;
--查看主进程
show processlist;
--杀某个进程
kill id;
网友评论