mysql主从复制日志如果我们不小心很可能导致mysql启动不了同时导致主从配置出问题,下面我来介绍安全的删除mysql主从二进制日志的方法.
删除日志之前,先检查主从服务器当前使用的日志文件,代码如下:
- //首先登录要删除日志的服务器的mysql终端
- #mysql-uroot-pxxxxx
- //检查复制主服务器状态
- Mysql>showmasterstatus
- +------------------+-----------+--------------+----------------------------------------+
- |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|
- +------------------+-----------+--------------+----------------------------------------+
- |mysql-bin.000097|541677824|www|test,mysql,information_schema|
- +------------------+-----------+-------------+----------------------------------------+
复制主服务器当前正在使用的日志文件是:mysql-bin.000097,代码如下:
- //检查复制从服务器状态
- Mysql>showslavestatusG
- ***************************1.row***************************
- Slave_IO_State:Waitingformastertosendevent
- Master_Host:202.102.152.3
- Master_User:replication
- Master_Port:3306
- Connect_Retry:60
- Master_Log_File:mysql-bin.000103
- Read_Master_Log_Pos:675107897
- Relay_Log_File:www-relay-bin.000443
- Relay_Log_Pos:675097929
- Relay_Master_Log_File:mysql-bin.000103
- Slave_IO_Running:Yes
- Slave_SQL_Running:Yes
- Replicate_Do_DB:www
- Replicate_Ignore_DB:test,mysql,information_schema
- 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:675107897
- Relay_Log_Space:675098125
- 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--phpfensi.com
- Last_IO_Error:
- Last_SQL_Errno:0
- Last_SQL_Error:
复制从服务器当前正在使用的复制主服务器日志文件是:mysql-bin.000103,当前正在使用的日志文件是000097,我需要做的是删除00095号之前的所有日志(预留出最近几天的日志),代码如下:
Mysql>purge master logs to ‘mysql-bin.000095;
#ll /usr/local/mysql/var/
从结果中发现,编号000097之前的所有日志都已经删除,如果还有其他服务器需要清理日志,重新按上面的顺序进行就可以.