讓MySQL中某個(gè)表的操作不生成binlog日志的問(wèn)題解決
要讓MySQL中某個(gè)表的操作不生成binlog日志,可以通過(guò)以下方法實(shí)現(xiàn):
一、臨時(shí)會(huì)話級(jí)關(guān)閉binlog(針對(duì)特定操作)
在需要操作該表時(shí),?臨時(shí)關(guān)閉當(dāng)前會(huì)話的binlog記錄,操作完成后恢復(fù)。這種方法適用于單次或少量操作場(chǎng)景:
SET sql_log_bin = 0; -- 關(guān)閉當(dāng)前會(huì)話的binlog記錄 -- 執(zhí)行對(duì)目標(biāo)表的操作(如INSERT/UPDATE/DELETE) INSERT INTO your_table (...) VALUES (...); SET sql_log_bin = 1; -- 恢復(fù)binlog記錄
注意:此方法僅影響當(dāng)前會(huì)話的后續(xù)操作,需手動(dòng)控制,適合臨時(shí)性需求
二、通過(guò)復(fù)制過(guò)濾規(guī)則(主從場(chǎng)景)
如果目標(biāo)表無(wú)需參與主從復(fù)制,可在MySQL配置文件中添加復(fù)制過(guò)濾規(guī)則,但需注意這僅影響從庫(kù)的同步,主庫(kù)仍會(huì)記錄binlog:
[mysqld] replicate-ignore-table=your_db.your_table -- 忽略該表的復(fù)制
此方法適用于主從架構(gòu)中特定表的同步排除,但主庫(kù)的binlog仍會(huì)記錄操作
三、調(diào)整binlog格式(部分場(chǎng)景適用)
將binlog_format
設(shè)置為ROW
或MIXED
,并結(jié)合特定語(yǔ)句實(shí)現(xiàn)部分操作不記錄binlog:
?使用INSERT DELAYED
或REPLACE
語(yǔ)句?(ROW格式下部分操作不記錄):
SET GLOBAL binlog_format = 'ROW'; -- 修改binlog格式 INSERT DELAYED INTO your_table (...) VALUES (...);
- ?通過(guò)
LOAD DATA INFILE
導(dǎo)入數(shù)據(jù)?(ROW格式下不記錄具體行變更)
局限性:此方法僅對(duì)特定語(yǔ)句生效,無(wú)法覆蓋所有操作類(lèi)型。
四、全局禁用binlog(不推薦)
若該表所在環(huán)境完全無(wú)需binlog(如測(cè)試環(huán)境),可全局關(guān)閉binlog:
- 修改MySQL配置文件:
[mysqld] skip-log-bin -- 禁用binlog
- 重啟MySQL服務(wù)
風(fēng)險(xiǎn)提示:此方法會(huì)影響所有表的binlog記錄,可能導(dǎo)致數(shù)據(jù)恢復(fù)和主從復(fù)制功能失效,生產(chǎn)環(huán)境慎用。
總結(jié)建議
- ?優(yōu)先選擇會(huì)話級(jí)臨時(shí)關(guān)閉?(方法一),靈活且風(fēng)險(xiǎn)可控。
- 若需長(zhǎng)期排除某個(gè)表,可結(jié)合復(fù)制過(guò)濾規(guī)則?(方法二)與業(yè)務(wù)邏輯設(shè)計(jì)。
- 避免直接全局禁用binlog,除非明確無(wú)數(shù)據(jù)恢復(fù)或復(fù)制需求。
注:MySQL原生不支持表級(jí)binlog過(guò)濾,上述方案均需結(jié)合業(yè)務(wù)場(chǎng)景權(quán)衡利弊。如需更精細(xì)控制,可考慮中間件或自定義審計(jì)插件實(shí)現(xiàn)。
到此這篇關(guān)于讓MySQL中某個(gè)表的操作不生成binlog日志的文章就介紹到這了,更多相關(guān)讓MySQL中某個(gè)表的操作不生成binlog日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySQL四種日志binlog/redolog/relaylog/undolog詳解
- MySQL使用binlog日志進(jìn)行數(shù)據(jù)庫(kù)遷移和數(shù)據(jù)恢復(fù)
- MySQL安全刪除binlog日志的詳細(xì)步驟
- 清理MySQL Binlog二進(jìn)制日志的三種方式
- mysql數(shù)據(jù)庫(kù)日志binlog保存時(shí)效問(wèn)題(expire_logs_days)
- Mysql如何通過(guò)binlog日志恢復(fù)數(shù)據(jù)詳解
- Mysql binlog日志文件過(guò)大的解決
- MySQL的binlog日志使用詳解
- 開(kāi)啟MySQL的binlog日志的方法步驟
相關(guān)文章
解決當(dāng)MySQL數(shù)據(jù)庫(kù)遇到Syn Flooding問(wèn)題
Syn攻擊常見(jiàn)于應(yīng)用服務(wù)器,而數(shù)據(jù)庫(kù)服務(wù)器在內(nèi)網(wǎng)中,應(yīng)該很難碰到類(lèi)似的攻擊,這篇文章主要介紹了當(dāng)MySQL數(shù)據(jù)庫(kù)遇到Syn Flooding問(wèn)題 ,需要的朋友可以參考下2019-06-06在MySQL中按字符串中的數(shù)字排序的詳細(xì)教程
本文將詳細(xì)介紹如何在MySQL中利用正則表達(dá)式提取字符串中的數(shù)字并按這些數(shù)字進(jìn)行排序,以一個(gè)具體的例子來(lái)說(shuō)明,使得即使是數(shù)據(jù)庫(kù)操作的初學(xué)者也能輕松理解和應(yīng)用,需要的朋友可以參考下2024-07-07最新版MySQL 8.0.22下載安裝超詳細(xì)教程(Windows 64位)
這篇文章主要介紹了最新版MySQL 8.0.22下載安裝超詳細(xì)教程(Windows 64位),本文通過(guò)圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12MySQL數(shù)據(jù)庫(kù)自增主鍵的間隔不為1的解決方式
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)自增主鍵的間隔不為1的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Mysql事務(wù)的隔離級(jí)別(臟讀+幻讀+可重復(fù)讀)
這篇文章主要介紹了Mysql事務(wù)的隔離級(jí)別(臟讀+幻讀+可重復(fù)讀),文章通告InnoDB展開(kāi)詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-08-08關(guān)于MySQL8.x group_by報(bào)錯(cuò)的4種解決方案
這篇文章主要介紹了關(guān)于MySQL8.x group_by報(bào)錯(cuò)的4種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06MySQL升級(jí)PostgreSQL遇到的一些常見(jiàn)問(wèn)題及解決方案
MySQL是一款性能優(yōu)越、數(shù)據(jù)可靠性高的數(shù)據(jù)庫(kù)軟件,然而為了保證其長(zhǎng)期有效運(yùn)行,數(shù)據(jù)庫(kù)升級(jí)是非常重要的,下面這篇文章主要給大家介紹了關(guān)于MySQL升級(jí)PostgreSQL遇到的一些常見(jiàn)問(wèn)題及解決方案的相關(guān)資料,需要的朋友可以參考下2024-05-05