数据库主从同步的时候有两个线程:IO线程和SQL线程。常见的报错时围绕这两个线程出现的。
IO线程:把主库binlog日志的内容记录到本机的中继日志文件里。
IO线程报错的原因有两个,第一是指定主库信息时参数信息有误;第二时安全限制(包括firewall,selinux)。
查看报错原因:
mysql> show slave status\G
……
Last_IO_error:报错提示
……
常见错误提示:error connecting to master 'repluse@192.168.4.51:3306' - retry-time: 60 retries:1
报错提示在从数据库服务器上指定主库信息参数时有误,通常是与主库授权时的用户或密码不一致造成的
另外,如果是指定主库信息时参数有误的话,可以查看数据库目录下的记录连接主库信息的文件master.info
[root@mysql]# cat /var/lib/mysql/master.info
>这里的参数就是指定主库信息时设置的参数
附指定主库信息时的命令及示例截图
mysql> change master to
-> master_host="ip地址",
-> master_user="授权时指定的用户名",
-> master_password="用户密码",
-> master_log_file="binlog日志",
-> master_log_pos=偏移量;修复IO线程:
mysql> stop slave;
mysql> change master to 选项=值;
mysql> start slave;
SQL线程:执行本机中继日志文件里的SQL命令,把数据写进本机数据库里
SQL线程出错原因:一般时执行中继日志文件里sql命令用到的库或表在本机不存在
修复SQL线程:
查看 本机和主数据库服务器中的库和表,使本机有主数据库服务器中的库或表。
先停止slave服务,晚上库或表之后再启动slave服务
mysql> stop slave;
修改
mysql> start slave;