Mysql主从复制搭建
1.给两台服务器安装好Mysql,安装详情请看下面链接。
https://www.cnblogs.com/jtfr/p/10325571.html https://www.cnblogs.com/jtfr/p/10533065.html
2.master主服务器配置
(1).修改配置文件
1.编辑文件 vim /etc/my.cnf (如果找不到文件,使用"find / name my.cnf"查找文件) 2.在[mysqld]中添加: # server-id 服务器唯一标识,不要和其他服务器server-id冲突了。
server-id = 1
# log_bin 启动MySQL二进制日志
log_bin = master-bin
binlog_do_db = jtfr
# binlog_ignore_db 指定不记录二进制日志的数据库,指定多个,用逗号隔开。
binlog_ignore_db = "mysql,sys,information_schema,performance_schema"

service mysqld restart
(2).master主服务器执行命令,创建一个用户给 slave从服务器 使用
grant replication slave on *.* to '用户名' @'ip地址' identified by '密码';

(3).重启 master主服务器
service mysqld restart

(4).登录 master主服务器查看状态
show master status;

3. slave 从服务器的配置
(1).修改配置文件
1.编辑文件 vi /etc/my.cnf (如果找不到文件,使用"find / name my.cnf"查找文件) 2.在[mysqld]中添加: server-id = 2 relay-log = slave-relay-bin

(2).重启 slave主服务器
service mysqld restart

(3).登录 slave从服务器,连接 master主服务器
master_host对应主服务器的IP地址 master_port对应主服务器的端口,注意没有单引号 master_log_file对应show master status显示的File列master-bin.000001 master_log_pos对应show master status显示的Position列,注意没有单引号 change master to master_host='主服务器的IP地址',master_port=主服务器的端口,master_user='slaveUser',master_password='Ckm1542@',master_log_file='show master status显示的File列',master_log_pos=show master status显示的Position列;

(4).在slave从服务器,登录状态下,启动Slave数据同步。
start slave;

(5).查看是否连接成功
show slave status\G 注意:末尾没有 分号,\G 表示了带分号

问题
1.Last_IO_Errno: 2003

解决方式:防火墙不通,可以在本机远程登录看是否可行,不可行说明连接不上。docker注意关闭宿主机的防火墙
2.Last_IO_Errno: 1045
原因:帐号不给在这个ip登录,我这里是docker之间走了内网,ip配置不对

3.Last_IO_Errno: 1597
解决:
slave开启了记录日志,master以为是级联复制,需要添加 log_slave_updates=1 到my.cnf配置文件中
帐号有问题,后面用的root帐号才解决的

浙公网安备 33010602011771号