Mysql
Mysql binlogs 存在,顯示二進制日誌為空
我正在進行複制設置並已打開 bin-logs。我已將我的 mysql 數據目錄以及 binlog 路徑移動到一個新位置
來自 my.cnf
datadir = /vol/data/mysql log-bin=/vol/data/mysql/mysql-bin binlog_format=mixed
當我啟動 mysqld 並檢查狀態時:
mysql> show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000315 | 106 | | | +------------------+----------+--------------+------------------+
當我查看 /vol/data/mysql 的內容時,我可以看到很多 bin 日誌,但具體來說,我可以看到這個文件是剛剛創建的:
mysql-bin.000313 mysql-bin.000314 mysql-bin.000315 mysql-bin.index
如果我跟踪索引文件:
$ sudo tail mysql-bin.index /vol/data/mysql/mysql-bin.000313 /vol/data/mysql/mysql-bin.000314 /vol/data/mysql/mysql-bin.000315
在 mysql 中,根本沒有二進制日誌。
mysql> SHOW BINARY LOGS; Empty set (0.00 sec)
這意味著清除 mysql 中的二進制日誌沒有任何影響。我檢查了目錄和文件的權限,都屬於mysql使用者和組。為什麼 mysql 不能看到和/或清除那些二進制日誌?
mysql> PURGE BINARY LOGS BEFORE NOW(); ERROR 1373 (HY000): Target log not found in binlog index
你可能需要嘗試一些非正統的東西
service mysql stop
mysql-bin.index
在 vi 中打開把內容改成這個
./mysql-bin.000313 ./mysql-bin.000314 ./mysql-bin.000315
保存
mysql-bin.index
service mysql start
登錄 MySQL 並執行
SHOW BINARY LOGS; SHOW MASTER STATUS;
這個特技為我工作了幾次。
試一試 !!!
就我而言,索引文件的開頭有一個空行。刪除空白行後,它工作正常。