MySQL 的 binlog(Binary Log)日志關閉的方法
如何關閉 MySQL 的 binlog(Binary Log)日志
1. 什么是 MySQL binlog?
MySQL 的 binlog(Binary Log,二進制日志) 是記錄數(shù)據(jù)庫更改的日志文件,主要用于:
- 數(shù)據(jù)恢復:通過
mysqlbinlog工具恢復數(shù)據(jù)。 - 主從復制:主庫通過 binlog 傳輸數(shù)據(jù)變更到從庫。
- 審計:記錄數(shù)據(jù)庫的寫入操作。
但在某些情況下(如單機數(shù)據(jù)庫、測試環(huán)境、磁盤空間有限時),可以關閉 binlog 以減少磁盤占用和 I/O 負擔。
2. 檢查 binlog 是否開啟
在 MySQL 終端或命令行中執(zhí)行:
SHOW VARIABLES LIKE 'log_bin';
如果返回 ON,說明 binlog 已啟用;如果返回 OFF,說明 binlog 已關閉。
檢查 binlog 文件:
SHOW BINARY LOGS;
如果 binlog 已開啟,會列出日志文件。
3. 關閉 MySQL binlog 方法
注意:關閉 binlog 后,MySQL 將不再記錄數(shù)據(jù)變更,主從復制會受到影響。
3.1臨時關閉 binlog(僅對當前會話生效)
SET SQL_LOG_BIN=0;
?? 該方法僅對當前會話有效,MySQL 重啟后 binlog 仍會生效。
3.2永久關閉 binlog(修改配置文件)
要永久關閉 binlog,需要修改 MySQL 配置文件 my.cnf(Linux/macOS)或 my.ini(Windows)。
步驟 1:編輯 MySQL 配置文件
- Linux/macOS:
sudo nano /etc/my.cnf
- Windows:
找到my.ini(通常在C:\ProgramData\MySQL\MySQL Server X.Y\my.ini)。
步驟 2:注釋或刪除 binlog 相關配置
找到 [mysqld] 部分,并注釋或刪除以下行:
#log-bin=mysql-bin # 注釋或刪除此行 #server-id=1 # 如果是主從復制,需修改 server-id
如果有 binlog_format,也可以刪除或注釋掉。
步驟 3:重啟 MySQL
修改完配置文件后,重啟 MySQL 使其生效:
sudo systemctl restart mysql # Linux(使用 systemd) service mysql restart # Linux(使用 SysVinit) net stop mysql && net start mysql # Windows
步驟 4:驗證 binlog 是否關閉
SHOW VARIABLES LIKE 'log_bin';
返回 OFF 說明已成功關閉。
4. 清理已有 binlog 文件(可選)
如果 binlog 關閉后仍然占用大量磁盤空間,可以手動刪除:
方法 1:手動清理 binlog
RESET MASTER;
或
PURGE BINARY LOGS TO 'mysql-bin.000010';
方法 2:刪除 binlog 文件(需謹慎)
如果 binlog 目錄存儲大量 .00000X 文件,可以手動刪除:
rm -rf /var/lib/mysql/mysql-bin.*
?? 注意:此操作不可逆,請謹慎執(zhí)行!
5. 結(jié)論
- Binlog 主要用于數(shù)據(jù)恢復、審計和主從復制。
- 在單機環(huán)境、測試環(huán)境或無主從需求時,可以關閉 binlog 以提高性能。
- 關閉 binlog 需修改 MySQL 配置文件并重啟 MySQL。
- 關閉后可手動清理已有的 binlog 文件以釋放磁盤空間。
到此這篇關于如何關閉 MySQL 的 binlog(Binary Log)日志的文章就介紹到這了,更多相關mysql binlog日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL中使用case when 語句實現(xiàn)多條件查詢的方法
今天在一個應用中使用到了一個比較特殊的數(shù)據(jù)查詢要求。需要的朋友可以參考下。2010-12-12
mysql 批量查詢?nèi)∶恳唤M最新一條數(shù)據(jù)
根據(jù)車牌號查詢最新的一條交車記錄的‘合同號’ ,這里只需要查詢‘合同號’這個字段,這篇文章主要介紹了mysql 批量查詢?nèi)∶恳唤M最新一條數(shù)據(jù),需要的朋友可以參考下2024-02-02
mysql如何處理varchar與nvarchar類型中的特殊字符
這篇文章主要介紹了mysql如何處理varchar與nvarchar類型中的特殊字符,需要的朋友可以參考下2014-12-12
MySQL數(shù)據(jù)庫索引order?by排序精講
我們今天說的并不是大數(shù)據(jù)下該如何優(yōu)雅的排序,如何提升排序性能的問題,我們來仔細分析說一說MySQL中的排序問題,希望可以對正在閱讀的同學們有所啟迪幫助2021-11-11
MySQL安全配置向?qū)ysql_secure_installation詳解
這篇文章主要介紹了MySQL安全配置向?qū)ysql_secure_installation各項配置的含義,并依據(jù)經(jīng)驗給予一了一些建議,需要的朋友可以參考下2014-03-03

