欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL?打開binlog日志的方法及注意事項(xiàng)

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

知識回顧:

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

一、默認(rèn)狀態(tài)

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

MySQL 5.7及以下版本:

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

MySQL 8.0版本:

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

補(bǔ)充:為什么版本間存在差異?

MySQL 8.0 改為默認(rèn)開啟 binlog 主要基于以下考慮:

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

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

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

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

您可以通過以下命令查看當(dāng)前 binlog 是否啟用:

SHOW VARIABLES LIKE '%log_bin%';

三、如何開啟 binlog

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

如果只是臨時(shí)測試,可以通過 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:確保目錄存在,否則會啟動(dòng)失敗
# 注意2:指定目錄需要用反斜杠/或雙反斜杠\\
log_bin = D:/java/mysql-5.7.33-winx64/binlog/mysql-bin
# 服務(wù)器唯一標(biāo)識(主從復(fù)制必需),默認(rèn)值0
server_id=1
# 推薦使用ROW格式
binlog_format = ROW
# 自動(dòng)清理7天前的日志
expire_logs_days = 7
# 增強(qiáng)持久性配置
# 每次事務(wù)提交都刷盤(最安全但性能略有影響)
sync_binlog = 1
# 記錄完整的行數(shù)據(jù)
binlog_row_image = FULL
  • log_bin = mysql-bin

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

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

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

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

    • 作用:控制binlog刷盤頻率

    • 默認(rèn)值0(由系統(tǒng)決定刷盤時(shí)機(jī))

    • 可選值

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

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

    • 默認(rèn)值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 驗(yàn)證是否開啟成功

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

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

3.4 查看 binlog 內(nèi)容

由于 binlog 是一個(gè)二進(jìn)制文件,直接查看是無法閱讀的:

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

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

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

四、高級配置建議

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

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

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

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

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

binlog_encryption = ON

五、注意事項(xiàng)

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

六、開啟后的日常維護(hù)

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

開啟 binlog 后,將獲得:

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

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

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

相關(guān)文章

  • mysql主從庫不同步問題解決方法

    mysql主從庫不同步問題解決方法

    本來配置可以使用的mysql主從庫同步的數(shù)據(jù)庫,突然出現(xiàn)無法同步的情況。那么大家可以參考下面的方法解決下。
    2011-08-08
  • MySQL實(shí)戰(zhàn)窗口函數(shù)SQL分析班級學(xué)生考試成績及生活消費(fèi)

    MySQL實(shí)戰(zhàn)窗口函數(shù)SQL分析班級學(xué)生考試成績及生活消費(fèi)

    這篇文章主要為大家介紹了MySQL實(shí)戰(zhàn),利用窗口函數(shù)SQL來分析班級學(xué)生的考試成績及生活消費(fèi)的示例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì))

    SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì))

    這篇文章主要介紹了SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • mYsql日期和時(shí)間函數(shù)不求人

    mYsql日期和時(shí)間函數(shù)不求人

    mYsql日期和時(shí)間函數(shù)不求人...
    2007-04-04
  • CentOS安裝配置MySQL8.0的步驟詳解

    CentOS安裝配置MySQL8.0的步驟詳解

    這篇文章主要介紹了CentOS安裝配置MySQL8.0的步驟,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-08-08
  • MySQL死鎖套路之唯一索引下批量插入順序不一致

    MySQL死鎖套路之唯一索引下批量插入順序不一致

    這篇文章主要給大家介紹了關(guān)于MySQL死鎖套路之唯一索引下批量插入順序不一致的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者M(jìn)ySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • MySQL數(shù)據(jù)庫的事務(wù)和索引詳解

    MySQL數(shù)據(jù)庫的事務(wù)和索引詳解

    這篇文章主要介紹了MySql 索引和事務(wù),總結(jié)分析了mysql數(shù)據(jù)庫中關(guān)于索引和事務(wù)的概念、原理、知識點(diǎn)及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-10-10
  • MySQL聚簇索引、非聚簇索引、覆蓋索引詳解

    MySQL聚簇索引、非聚簇索引、覆蓋索引詳解

    這篇文章詳細(xì)介紹了聚簇索引、非聚簇索引和覆蓋索引的概念,并通過圖示和實(shí)例說明了索引查找的過程和回表查詢的概念,同時(shí),文章也提到了覆蓋索引的優(yōu)點(diǎn)和弊端,并給出了適用場景
    2024-12-12
  • mysql復(fù)制表的幾種常用方式總結(jié)

    mysql復(fù)制表的幾種常用方式總結(jié)

    mysql想必大家比較熟悉了,我們常見的crud sql想必大家也是手到拈來,下面這篇文章主要給大家介紹了關(guān)于mysql復(fù)制表的幾種常用方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • 關(guān)于mysql基礎(chǔ)知識的介紹

    關(guān)于mysql基礎(chǔ)知識的介紹

    本篇文章是對mysql的基礎(chǔ)知識進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06

最新評論