1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| (1) 用户 密码 IP port Last_IO_Error: error reconnecting to master 'repl@10.0.0.51:3307' - retry-time: 10 retries: 7 ERROR 1045 (28000): Access denied for user 'repl'@'db01' (using password: YES) 原因:密码错误、用户错误、地址错误、端口 skip_name_resolve ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.52' (113) 处理方法: stop slave reset slave all change master to start slave (2) 主库连接数上线,或者是主库太繁忙 show slave staus \G Last_IO_Errno: 1040 Last_IO_Error: error reconnecting to master 'repl@10.0.0.51:3307' - retry-time: 10 retries: 7
处理思路: 拿复制用户,手工连接一下: mysql -urepl -p123 -h 10.0.0.51 -P 3307 ERROR 1040 (HY000): Too many connections 处理方法: set global max_connections=300;
(3)防火墙,网络不通
# 请求二进制日志 主库缺失日志 从库方面,二进制日志位置点不对
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the first event 'mysql-bin.000001' at 154, the last event read from '/data/3307/data/mysql-bin.000002' at 154, the last byte read from '/data/3307/data/mysql-bin.000002' at 154.'
注意: 在主从复制环境中,严令禁止主库中reset master; 可以选择expire 进行定期清理主库二进制日志 解决方案: 重新构建主从
# SQL 线程故障 (1)读写relay-log.info (2)relay-log损坏,断节,找不到 (3)接收到的SQL无法执行 0. SQL_MODE影响 1.要创建的数据库对象,已经存在 2.要删除或修改的对象不存在 3.DML语句不符合表定义及约束时. 归根揭底的原因都是由于从库发生了写入操作 Last_SQL_Error: Error 'Can't create database 'db'; database exists' on query. Default database: 'db'. Query: 'create database db'
以下是有风险的操作:处理方法(以从库为核心的处理方案): stop slave; set global sql_slave_skip_counter = 1;
start slave;
/etc/my.cnf slave-skip-errors = 1032,1062,1007
1007:对象已存在 1032:无法执行DML 1062:主键冲突,或约束冲突
但是,以上操作有时是有风险的,最安全的做法就是重新构建主从,把握一个原则,一切以主库为主 一劳永逸的方法:可以设置从库只读 show variables like '%read_only%';
|