天天看點

mysql主從同步錯誤解決和Slave_IO_Running: NO

mysql主從同步錯誤解決和Slave_IO_Running: NO

轉載:http://hzcsky.blog.51cto.com/1560073/479476

1、出現錯誤提示、

Slave I/O: error connecting to master '[email protected]:3306' - retry-time: 60  retries: 86400, Error_code: 1045

解決方法

從伺服器上删除掉所有的二進制日志檔案,包括一個資料目錄下的master.info檔案和hostname-relay-bin開頭的檔案。

master.info::記錄了Mysql主伺服器上的日志檔案和記錄位置、連接配接的密碼。

 2、出現錯誤提示

Error reading packet from server: File '/home/mysql/mysqlLog/log.000001' not found (Errcode: 2) ( server_errno=29)

解決方案:

由于主伺服器運作了一段時間,産生了二進制檔案,而slave是從log.000001開始讀取的,删除主機二進制檔案,包括log.index檔案。

3、錯誤提示如下

Slave SQL: Error 'Table 'xxxx' doesn't exist' on query. Default database: 't591'. Query: 'INSERT INTO `xxxx`(type,post_id,browsenum) SELECT type,post_id,browsenum FROM xxxx WHERE hitdate='20090209'', Error_code: 1146

由于slave沒有此table表,添加這個表,使用slave start 就可以繼續同步。

4、錯誤提示如下

Error 'Duplicate entry '1' for key 1' on query. Default database: 'movivi1'. Query: 'INSERT INTO `v1vid0_user_samename` VALUES(null,1,'123','11','4545','123')'

Error 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' on query. Default database: 'club'. Query: 'INSERT INTO club.point_process ( GIVEID, GETID, POINT, CREATETIME, DEMO ) VALUES ( 0, 4971112, 5, '2010-12-19 16:29:28','

1 row in set (0.00 sec)

 Mysql > Slave status\G;

顯示:Slave_SQL_Running 為 NO

解決方法:

Mysql > stop slave;

Mysql > set global sql_slave_skip_counter =1 ;

Mysql > start slave;

5、錯誤提示如下

# show slave status\G;

Master_Log_File: mysql-bin.000029

Read_Master_Log_Pos: 3154083

Relay_Log_File: c7-relay-bin.000178

Relay_Log_Pos: 633

Relay_Master_Log_File: mysql-bin.000025

Slave_IO_Running: Yes

Slave_SQL_Running: No

Replicate_Do_DB: club

Replicate_Ignore_DB: 

Replicate_Do_Table: 

Replicate_Ignore_Table: 

Replicate_Wild_Do_Table: 

Replicate_Wild_Ignore_Table: 

Last_Errno: 1594

Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master's binary log is corrupted (you can check this by running 'mysqlbinlog' on the binary log), the slave's relay log is corrupted (you can check this by running 'mysqlbinlog' on the relay log), a network problem, or a bug in the master's or slave's MySQL code. If you want to check the master's binary log or slave's relay log, you will be able to know their names by issuing 'SHOW SLAVE STATUS' on this slave.

Skip_Counter: 0

Exec_Master_Log_Pos: 1010663436

這個問題原因是,主資料庫突然停止或問題終止,更改了mysql-bin.xxx日志,slave伺服器找不到這個檔案,需要找到同步的點和日志檔案,然後chage master即可。

 change master to 

 master_host='211.103.156.198',

 master_user='同步帳号', 

 master_password='同步密碼', 

 master_port=3306, 

 master_log_file='mysql-bin.000025

', 

 master_log_pos=1010663436

;

6、錯誤提示如下

Error 'Unknown column 'qdir' in 'field list'' on query. Default database: 'club'. Query: 'insert into club.question_del (id, pid, ques_name, givepoint, title, subject, subject_pid, createtime, approve, did, status, intime, order_d, endtime,banzhu_uid,banzhu_uname,del_cause,qdir) select id, pid, ques_name, givepoint, title, subject, subject_pid, createtime, approve, did, status, intime, order_d, endtime,'1521859','admin0523','無意義回複',qdir from club.question where id=7330212'

這個錯誤就說club.question_del 表裡面沒有qdir這個字段 造成的加上就可以了~!

在主的mysql : 裡面查詢 Desc club.question_del; 

在 錯誤的從伺服器上執行 : alter table question_del add qdir varchar(30) not null;

 7、錯誤提示如下

  Slave_IO_Running: NO

 這個錯誤就是IO 程序沒連接配接上  ,想辦法連接配接上把 把與主的POS 号和檔案一定要對,然後重新加載下資料。具體步驟:

slave stop;

change master to master_host='IP位址',master_user='club',master_password='mima ',master_log_file='mysqld-bin.000048',MASTER_LOG_POS=396549485;

注:master_log_file='mysqld-bin.000048',MASTER_LOG_POS=396549485;是從主的上面查出 來的 :show master status\G;

LOAD DATA FROM MASTER;

繼續閱讀