晚上迁移数据库,按照常规的拷库,配置replication slave 权限,然后change master to照做


出现错误:

Slave_IO_Running: No


查看errorlog:

130530 15:11:56 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry, log 'mysql-bin.000006' position 1238400

130530 15:11:56 [Note] Slave: connected to master 'repl@10.13.195.123:3306',replication resumed in log 'mysql-bin.000006' at position 1238400

130530 15:11:56 [ERROR] Error reading packet from server: Access denied; you need the REPLICATION SLAVE privilege for this operation ( server

_errno=1227)


说是Access denied; you need the REPLICATION SLAVE privilege for this operation ( server

_errno=1227)


随到主库赋值权限,赋权限后,再次

mysql>stop slave;

mysql>start slave;

mysql>show slave status \G

发现错误依旧

随查看 /etc/my.cnf 中 server-id 确保不一致,但是发现确实是不一致的


随后修改change master to 的binlog以及pos,因为怕 之前记录的binlog和pos 在主上是有问题的,但是change master to后也美好


随猜测是主库问题,到主库查看:

mysql> show global variables like 'version';

发现主从mysql版本不一样  主:5.0.77-log   从:5.0.95-log

但是先不觉得是版本不同带来的问题


随后到主上检查 复制账号的真实权限:

mysql> show grants for 'repl'@'xxx';

发现没有replication slave权限


然后查看mysql user表,发现缺少字段 o(╯□╰)o


之后使用 mysql_fix_privilege_tables 命令修复之,搞定!