MySQL主从复制问题解决一例


这是MySQL关于主从复制的主库的配置相关内容:

  1. server-id       = 1  
  2. log-bin=/mysql_log/binlog/bin-log  
  3. slave-skip-errors=1062,1205  
  4. max_binlog_size = 500M  
  5. binlog_cache_size = 128K  
  6. relay-log =/mysql_log/relaylog/relaylog  
  7. log-slave-updates 

之前搭建的MySQL主从复制出现问题,不能正常同步,查看日志,发下有以下错误:

  1. 120726 13:20:36 Could not use /mysql_log/relaylog/relaylog for logging (error 2). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.  
  2. 120726 13:20:36 Failed in open_log() called from init_relay_log_info()  
  3. 120726 13:20:36 Failed to initialize the master info structure  
  4. 120726 13:20:36 Could not use /mysql_log/binlog/bin-log for logging (error 2). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.  
  5.  
  6.  
  7. 120801 17:53:00 Failed to open the relay log '/mysql_log/relaylog/relaylog.036' (relay_log_pos 4)  
  8. 120801 17:53:00 Could not find target log during relay log initialization  
  9. 120801 17:53:00 Failed to initialize the master info structure  

1、关闭mysql 

  1. [root@111_ddb ~]# mysqladmin -p shutdown  
  2. Enter password:  
  3.  
  4. [root@111_ddb data]# tail -f /home/mysql/data/111_ddb.err  
  5. 120801 17:56:57 /usr/local/mysql/libexec/mysqld: Normal shutdown  
  6.  
  7. 120801 17:56:58  InnoDB: Starting shutdown...  
  8. 120801 17:57:30  InnoDB: Shutdown completed  
  9. 120801 17:57:30 /usr/local/mysql/libexec/mysqld: Shutdown Complete  
  10.  
  11. 120801 17:57:30  mysqld ended  

2、删除主库上关于binlog日志的记录文件,msater.info 和 relay-log.info

  1. [root@111_ddb ~]# cd /home/mysql/data/  
  2. [root@111_ddb data]# ls  
  3. 111_ddb.err  111_ddb-slow.log  ddb                     ibdata1      ib_logfile1  master.info  mysql_dd        slow.log  test  
  4. 111_ddb.pid  adb               ib_arch_log_0000000000  ib_logfile0  ib_logfile2  mysql        relay-log.info  tdb  
  5. [root@111_ddb data]# ls *info  
  6. master.info  relay-log.info  
  7. [root@111_ddb data]# ls  
  8. 111_ddb.err  111_ddb-slow.log  ddb                     ibdata1      ib_logfile1  master.info  mysql_dd        slow.log  test  
  9. 111_ddb.pid  adb               ib_arch_log_0000000000  ib_logfile0  ib_logfile2  mysql        relay-log.info  tdb  
  10. [root@111_ddb data]# rm -f master.info relay-log.info   
  11. [root@111_ddb data]# cd /mysql_log/binlog/  
  12. [root@111_ddb binlog]# ls  
  13. bin-log.001  bin-log.index 
  14. [root@111_ddb binlog]# rm -f *  
  15. [root@111_ddb binlog]# cd ../relaylog/  
  16. [root@111_ddb relaylog]# ls  
  17. relaylog.001  relaylog.index 
  18. [root@111_ddb relaylog]# rm -f *  
  19. [root@111_ddb relaylog]# cd ../binlog/ 

3、开启mysql

  1. [root@111_ddb ~]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/innodb.cnf --datadir=/home/mysql/data --user=mysql &  
  2.  
  3. [root@111_ddb data]# tail -f /home/mysql/data/111_ddb.err  
  4.  
  5. 120801 17:58:21  mysqld started  
  6. 120801 17:58:23  InnoDB: Started  
  7. /usr/local/mysql/libexec/mysqld: ready for connections.  
  8. Version: '4.0.26-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution  
  9.  
  10. [root@111_ddb binlog]# ll  
  11. total 13080  
  12. -rw-rw---- 1 mysql mysql 13365795 Aug  1 17:59 bin-log.001  
  13. -rw-rw---- 1 mysql mysql       30 Aug  1 17:58 bin-log.index  
  14. [root@111_ddb binlog]# ll  
  15. total 13828  
  16. -rw-rw---- 1 mysql mysql 14132046 Aug  1 17:59 bin-log.001  
  17. -rw-rw---- 1 mysql mysql       30 Aug  1 17:58 bin-log.index  
  18. [root@111_ddb binlog]# ll  
  19. total 15020  
  20. -rw-rw---- 1 mysql mysql 15355877 Aug  1 17:59 bin-log.001  
  21. -rw-rw---- 1 mysql mysql       30 Aug  1 17:58 bin-log.index 

通过日志和查看binlog文件,说明主库的配置恢复正常

相关内容