MySQL双主热备问题处理

1. Slave_IO_Running: No

mysql> show slave status\G*************************** 1. row ***************************Slave_IO_State:Master_Host: Master_User: cahmsMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000003Read_Master_Log_Pos: 20398Relay_Log_File: mysqldRelay_Log_Pos: 4Relay_Master_Log_File: mysql-bin.000003Slave_IO_Running: NoSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 20398Relay_Log_Space: 106Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: NULLMaster_SSL_Verify_Server_Cert: NoLast_IO_Errno: 1593Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave haveequal MySQL server ids; these ids must be different for replication towork (option must be used on slave butthis does not always make sense; please check the manual before usingit).Last_SQL_Errno: 0Last_SQL_Error:1 row in set (0.00 sec)

(1) master and slave have equal MySQL server ids 【解决办法】 修改/etc/my.cnf 下的server-id的值,,确保master和slave的server-id不一样即可;

(2) Error reading packet from server:

Access denied; you need the REPLICATION SLAVE privilege for this operation ( server_errno=1227)

【解决办法】主服务器给的复制权限不够,重新赋予权限。

“`> grant replication slave ;> flush privileges;== e.g ==> grant replication slave on *.* to ‘root’@’192.16.10.21’identified by ‘root’;> grant replication slave on *.* to ‘root’@’192.16.10.23’ identified by ‘root’;

2. Slave_IO_State:

Waiting to reconnect after a failed master event readmysql> show slave status\G*************************** 1. row ***************************Slave_IO_State: Waiting to reconnect after a failed master event readMaster_Host: Master_User: cahmsMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000003Read_Master_Log_Pos: 106Relay_Log_File: mysqld-relay-bin.000001Relay_Log_Pos: 4Relay_Master_Log_File: mysql-bin.000003Slave_IO_Running: NoSlave_SQL_Running: YesReplicate_Do_DB:Replicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table:Last_Errno: 0Last_Error:Skip_Counter: 0Exec_Master_Log_Pos: 106Relay_Log_Space: 106Until_Condition: NoneUntil_Log_File:Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File:Master_SSL_CA_Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master: NULLMaster_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error:Last_SQL_Errno: 0Last_SQL_Error:)

【解决办法】

> grant replication slave on *.* to ‘root’@’192.16.10.228’ identified by ‘root’;> grant replication slave on *.* to ‘root’@’192.16.10.231’identified by ‘root’;> flush privileges;

3.Another MySQL daemon already running with the same unix socket.

原因多个Mysql进程使用了同一个socket。 两个方法解决:

第一个是立即关机 使用命令 shutdown -h now 关机,关机后在启动,进程就停止了。

第二个直接把mysql.sock文件改名即可。也可以删除,推荐改名。 然后就可以启动mysql了。

下面是国外原文

To prevent the problem from occurring, you must perform a graceful shutdown of the server from the command line rather than powering off the server.

# shutdown -h now

This will stop the running services before powering down the machine. Based on Centos, an additional method for getting it back up again when you run into this problem is to move mysql.sock:

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak# service mysqld start

Restarting the service creates a new entry called mqsql.sock

同时也用对她的怀念来惩罚自己。

MySQL双主热备问题处理

相关文章:

你感兴趣的文章:

标签云: