环境是MySQL Master-Slave模式,Linux下5.1版本,今天在MySQL从库上看到一个错误:100901 18:16:16 [ERROR] Slave SQL: Error 'Table 'maopaodb.g_group_member' doesn't exist' on query. Default database: 'maopaodb'. Query: 'ALTER table g_group_member CHANGE
`create_time` `create_time` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
change `update_time` `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', Error_code: 1146
100901 18:16:16 [Warning] Slave: Table 'maopaodb.g_group_member' doesn't exist Error_code: 1146
100901 18:16:16 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000010' position 91185240
意思是maopaodb这个库的一个表g_group_member在从库上不存在,而更改这个表的SQL语句当然无法执行了。
到主库看一下这个表是否存在:[root@localhost ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8390
Server version: 5.1.49-log MySQL Community Server (GPL)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use maopaodb;
Database changed
mysql> show tables;
+--------------------------+
| Tables_in_maopaodb |
+--------------------------+
......
| g_group_member |
......
+--------------------------+
31 rows in set (0.00 sec)
主库上是有的,那么一定是复制过程中这个表没有同步过来,而后续的SQL在操作这个表的时候就报错了。
我们先着力解决掉眼前的问题,在主库查看这个表的建表语句:mysql> show create table g_group_member;
| Table | Create Table
| g_gro