亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL?打開binlog日志的方法及注意事項

 更新時間:2025年06月18日 14:59:20   作者:不愿放下技術(shù)的小趙  
本文給大家介紹MySQL?打開binlog日志的方法及注意事項,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

知識回顧:

binlog 是一個二進制格式的文件,記錄了對 MySQL 數(shù)據(jù)庫執(zhí)行更改的所有 寫操作,例如更改數(shù)據(jù)庫表和更改內(nèi)容的 SQL 語句都會記錄到 binlog 里,但是不會記錄 SELECT 和 SHOW 這類操作。

一、默認狀態(tài)

在MySQL 5.7及以上版本中,binlog默認是關(guān)閉的,而在MySQL 8.0版本中,binlog默認是開啟的。具體表現(xiàn)如下:

MySQL 5.7及以下版本:

  • 默認關(guān)閉:安裝后需要手動配置開啟
  • 原因:早期版本認為不是所有環(huán)境都需要二進制日志功能

MySQL 8.0版本:

  • 默認開啟:安裝后自動啟用binlog
  • 原因
    • 增強的數(shù)據(jù)安全考慮
    • 為Group Replication等新功能提供基礎(chǔ)支持
    • 符合現(xiàn)代數(shù)據(jù)庫的運維需求

補充:為什么版本間存在差異?

MySQL 8.0 改為默認開啟 binlog 主要基于以下考慮:

數(shù)據(jù)安全:即使沒有配置主從復(fù)制,binlog也能用于時間點恢復(fù)。

新功能依賴:Group Replication、InnoDB Cluster 等都需要 binlog。

現(xiàn)代硬件性能:現(xiàn)代服務(wù)器通常有能力承擔 binlog 的額外開銷。

二、如何檢查 binlog 狀態(tài)

您可以通過以下命令查看當前 binlog 是否啟用:

SHOW VARIABLES LIKE '%log_bin%';

三、如何開啟 binlog

3.1 臨時開啟(重啟后失效)

如果只是臨時測試,可以通過 MySQL 命令行開啟(無需重啟服務(wù)):

SET GLOBAL log_bin = ON;
SET GLOBAL binlog_format = 'ROW';  -- 推薦使用ROW格式
SET GLOBAL sync_binlog = 1;       -- 每次事務(wù)提交都刷盤

3.2 永久開啟(需修改配置文件)

1)找到 MySQL 配置文件

  • Linux:/etc/my.cnf 或 /etc/msql/my.cnf
  • Windows:my.ini(通常在 MySQL 安裝目錄)

2)添加以下配置(在 [mysqld] 段)

[mysqld]
# 基礎(chǔ)配置
# 啟用binlog并設(shè)置文件名前綴
# 注意1:確保目錄存在,否則會啟動失敗
# 注意2:指定目錄需要用反斜杠/或雙反斜杠\\
log_bin = D:/java/mysql-5.7.33-winx64/binlog/mysql-bin
# 服務(wù)器唯一標識(主從復(fù)制必需),默認值0
server_id=1
# 推薦使用ROW格式
binlog_format = ROW
# 自動清理7天前的日志
expire_logs_days = 7
# 增強持久性配置
# 每次事務(wù)提交都刷盤(最安全但性能略有影響)
sync_binlog = 1
# 記錄完整的行數(shù)據(jù)
binlog_row_image = FULL
  • log_bin = mysql-bin

    • 作用:啟用二進制日志(binlog)并設(shè)置文件名前綴
    • 默認值
      • MySQL 5.7及以下:OFF(默認關(guān)閉)
      • MySQL 8.0+:ON(默認開啟,前綴為 binlog
    • 說明
      • 啟用后生成文件如 mysql-bin.000001、mysql-bin.000002
      • 生產(chǎn)環(huán)境必須開啟(主從復(fù)制/數(shù)據(jù)恢復(fù)依賴)
  • server_id=1

    • 作用:服務(wù)器唯一標識(主從復(fù)制必需)
    • 默認值0(未設(shè)置,主從復(fù)制會失?。?/li>
    • 說明
      • 主從環(huán)境中每個實例必須配置唯一ID
      • 單機可設(shè)為1,集群中需分配不同值(如1,2,3…)
  • binlog_format = ROW

    • 作用:指定binlog記錄格式
    • 默認值
      • MySQL 5.7+:ROW
      • 更早版本:STATEMENT
    • 可選值
      • ROW:記錄行數(shù)據(jù)變更(推薦,最安全)
      • STATEMENT:記錄原始SQL(有主從不一致風險)
      • MIXED:混合模式
  • expire_logs_days = 7

    • 作用:自動清理N天前的binlog
    • 默認值0(不自動清理)
    • 說明
      • 與 binlog_expire_logs_seconds 沖突(8.0+優(yōu)先用后者)
      • 生產(chǎn)環(huán)境建議設(shè)置(避免磁盤占滿)
  • sync_binlog = 1

    • 作用:控制binlog刷盤頻率

    • 默認值0(由系統(tǒng)決定刷盤時機)

    • 可選值

      • 0:依賴系統(tǒng)緩存,性能高但可能丟失事務(wù)
      • 1:每次事務(wù)提交都刷盤(最安全,性能略低)
      • N:每N次事務(wù)提交刷盤(平衡安全性與性能)
  • binlog_row_image = FULL

    • 作用:ROW格式下記錄的行數(shù)據(jù)內(nèi)容

    • 默認值FULL(MySQL 5.6+)

    • 可選值

      • FULL:記錄修改前后的完整行數(shù)據(jù)(推薦)
      • MINIMAL:僅記錄被修改的列+主鍵
      • NOBLOB:排除未修改的BLOB/TEXT列

3)重啟 MySQL 服務(wù)

# Linux系統(tǒng)
sudo systemctl restart mysqld
# Windows
通過服務(wù)管理器重啟MySQL服務(wù)

3.3 驗證是否開啟成功

  • 方式一:重啟后查看指定目錄下是否存在binlog

  • 方式二:通過命令查看
-- 檢查binlog狀態(tài)
SHOW VARIABLES LIKE '%log_bin%';
-- 查看當前binlog文件
SHOW BINARY LOGS;
-- 查看binlog格式
SHOW VARIABLES LIKE 'binlog_format';

3.4 查看 binlog 內(nèi)容

由于 binlog 是一個二進制文件,直接查看是無法閱讀的:

我們可以使用 mysqlbinlog 工具(MySQL自帶)來進行解析之后查看:

mysqlbinlog mysql-bin.000001 > binlog-0000001.sql

查看解析之后的內(nèi)容如下:

四、高級配置建議

1)為 binlog 單獨分配目錄(避免占滿系統(tǒng)盤)

log_bin = /var/lib/mysql-binlogs/mysql-bin

2)調(diào)整 binlog 大?。J為1G)

max_binlog_size = 100M # 根據(jù)業(yè)務(wù)調(diào)整

3)啟用 binlog 加密(MySQL 8.0+)

binlog_encryption = ON

五、注意事項

  • 權(quán)限要求:操作需要 MySQL 管理員權(quán)限。
  • 磁盤空間:開啟后會增加磁盤寫入量,確保有足夠空間。
  • 性能影響sync_binlog=1 會降低寫入性能,但保證數(shù)據(jù)安全。
  • 版本差異
    • MySQL 5.7需手動開啟
    • MySQL 8.0默認已開啟,只需確認配置

六、開啟后的日常維護

-- 定期清理舊binlog(也可設(shè)置expire_logs_days自動清理)
PURGE BINARY LOGS BEFORE '2023-01-01 00:00:00';
-- 查看binlog占用空間
SHOW BINARY LOG STATUS;

開啟 binlog 后,將獲得:

  • 數(shù)據(jù)恢復(fù)能力
  • 主從復(fù)制基礎(chǔ)
  • 操作審計能力

建議所有生產(chǎn)環(huán)境都啟用 binlog 功能。

到此這篇關(guān)于MySQL 如何打開binlog日志的文章就介紹到這了,更多相關(guān)mysql binlog日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論