检查数据库发现 Slave未和主机同步,查看Slave状态:
mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.9.145
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 547
               Relay_Log_File: mysqltest2-relay-bin.000002
                Relay_Log_Pos: 614
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 1051
                   Last_Error: Error 'Unknown table 'test'' on query. Default database: 'test'. Query: 'drop table test'
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 469
              Relay_Log_Space: 852
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 1051
               Last_SQL_Error: Error 'Unknown table 'test'' on query. Default database: 'test'. Query: 'drop table test'
1 row in set (0.00 sec)

原因:
1.可能在slave上进行了写操作 (导致slave跟master数据不一致)
2.也可能是slave机器重起后,事务回滚造成的.
3.数据同步初始化时,未成功,就是说主库上的某些表没有初始化,删除的时候,导致slave出现'Unknown table 'test'' on query. Default database: 'test'. Query: 'drop table test'报错

===============================================================================
解决办法1:(手动同步数据)
1.首先停掉Slave服务
mysql> STOP SLAVE;
Query OK, 0 rows affected (0.00 sec)


2.到主服务器上查看主机状态:
记录File和Position对应的值。
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000009 |     3602 |              | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

***********************************************************
3.初始化同步数据  (可以尝试直接跳过该步骤,执行下面的步骤,如果可以成功,则不需要执行这步。这步属于重新开始做一次slave的数据初始化了)
master:
[root@mysqltest1 mysql]# mysqldump -uroot -p123456 test > /tmp/test.sql
[root@mysqltest1 mysql]# cd /tmp
[root@mysqltest1 tmp]# ll
total 4
srwxr-xr-x 1 root  root     0 Aug 15  2013 mapping-root
srwxrwxrwx 1 mysql mysql    0 Oct 30 22:34 mysql.sock
-rw-r--r-- 1 root  root  2379 Nov  3 19:25 test.sql
[root@mysqltest1 tmp]# scp test.sql 192.168.9.146:/tmp/
root@192.168.9.146's password: 
test.sql                                      100% 2379     2.3KB/s   00:00    
[root@mysqltest1 tmp]# 

*****
slave:
[root@mysqltest2 mysql]# cd /tmp
[root@mysqltest2 tmp]# ll
total 4
srwxr-xr-x 1 root  root     0 Aug 15  2013 mapping-root
srwxrwxrwx 1 mysql mysql    0 Oct 17 21:25 mysql.sock
-rw-r--r-- 1 root  root  2379 Nov  3 19:26 test.sql
[root@mysqltest2 tmp]# mysql -uroot -p123456 < test.sql 
[root@mysqltest2 tmp]# mysql -uroot -p123456 test < test.sql 
[root@mysqltest2 tmp]# 
***********************************************************

4.到slave服务器上执行手动同步:
mysql> CHANGE MASTER TO MASTER_HOST='192.168.9.145', MASTER_PORT=3306, MASTER_USER='replication', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=106;
Query OK, 0 rows affected (0.49 sec)


5.再次查看slave状态发现:
mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.9.145
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 106
               Relay_Log_File: mysqltest2-relay-bin.000002
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 106
              Relay_Log_Space: 411
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
1 row in set (0.00 sec)

解决

===============================================================================

解决办法2:
(确保master与slave的数据时一致的,不然会出现数据不同步的情况)
mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;
===============================================================================


 
===============================================================================

查看日志一些命令
1,  
show master status\G;
在这里主要是看log-bin的文件是否相同。

show slave status\G;
在这里主要是看:
            Slave_IO_Running=Yes
            Slave_SQL_Running=Yes
如果都是Yes,则说明配置成功.


2,在master上输入show processlist\G;
   mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
     Id: 103
   User: root
   Host: localhost
     db: test
Command: Query
   Time: 0
  State: NULL
   Info: SHOW PROCESSLIST
*************************** 2. row ***************************
     Id: 113
   User: replication
   Host: 192.168.9.146:59187
     db: NULL
Command: Binlog Dump
   Time: 1185
  State: Has sent all binlog to slave; waiting for binlog to be updated
   Info: NULL
2 rows in set (0.00 sec)

出现Command: Binlog Dump,则说明配置成功.
 
 
维护管理命令:
stop slave                                    #停止同步 
start slave                                   #开始同步,从日志终止的位置开始更新。 
SET SQL_LOG_BIN=0|1                           #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误 
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n           # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
RESET MASTER                                  #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER               &
RESET SLAVE                                   #从机运行,清除日志同步位置标志,并重新生成master.info                   &
                                              #虽然重新生成了master.info,但是并不起用,最好,将从机的mysql进程重启一下 &
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

LOAD TABLE tblname FROM MASTER    #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个命令需要同步账号有 reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 
LOAD DATA FROM MASTER             #从机执行,从主机端重新读入所有的数据。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 
CHANGE MASTER TO master_def_list  #在线改变一些主机设置,多个用逗号间隔,比如

CHANGE MASTER TO
  MASTER_HOST='master2.mycompany.com',
  MASTER_USER='replication',
  MASTER_PASSWORD='bigs3cret' 
MASTER_POS_WAIT()             #从机运行 

SHOW MASTER STATUS         #主机运行,看日志导出信息 
SHOW SLAVE HOSTS           #主机运行,看连入的从机的情况。 
SHOW SLAVE STATUS (slave) 
SHOW MASTER LOGS (master) 
SHOW BINLOG EVENTS [ IN 'logname' ] [ FROM pos ] [ LIMIT [offset,] rows ]   #PURGE [MASTER] LOGS TO 'logname' ; PURGE [MASTER] LOGS BEFORE 'date'

转载自 http://blog.itpub.net/29500582/viewspace-1318552/