mysql主从复制日志如果我们不小心很可能导致mysql启动不了同时导致主从配置出问题,下面我来介绍安全的删除mysql主从二进制日志的方法。
//删除日志之前,先检查主从服务器当前使用的日志文件,
代码如下 |
|
//首先登录 要删除日志的服务器的 mysql 终端
#mysql -u root -pxxxxx
//检查复制主服务器状态
Mysql>show master status
+------------------+-----------+--------------+----------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+----------------------------------------+
| mysql-bin.000097 | 541677824 | www | test,mysql,information_schema |
+------------------+-----------+-------------+----------------------------------------+
|
//复制主服务器当前正在使用的日志文件是:mysql-bin.000097
代码如下 |
|
//检查复制从服务器状态
Mysql>show slave statusG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
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
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之前的所有日志都已经删除
//如果还有其他服务器需要清理日志,重新按上面的顺序进行就可以