最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL從庫過濾所有DELETE操作的幾種方案

 更新時(shí)間:2025年10月12日 11:26:39   作者:學(xué)亮編程手記  
在 MySQL 從庫 上,有沒有一種 全局配置方式,可以直接禁止或過濾所有 DELETE(乃至 UPDATE)操作?本文我會(huì)詳細(xì)說明 生產(chǎn)可用的幾種方法(推薦從強(qiáng)到弱排列),需要的朋友可以參考下

MySQL 從庫 上,有沒有一種 全局配置方式,可以直接禁止或過濾所有 DELETE(乃至 UPDATE)操作?

答案是 —— 有幾種可選方案,但要看你希望的“層級”和“嚴(yán)格程度”。
本文我會(huì)詳細(xì)說明 生產(chǎn)可用的幾種方法(推薦從強(qiáng)到弱排列)。

方案一:使用 read_only 或 super_read_only(最推薦)

配置方式:

在從庫 my.cnf(或 mysqld.cnf)中添加:

[mysqld]
read_only=ON
super_read_only=ON

然后重啟 MySQL:

systemctl restart mysqld

工作原理:

  • read_only=ON:普通用戶不能對從庫進(jìn)行寫入(INSERT, UPDATE, DELETE, CREATE, DROP等);
  • super_read_only=ON即使是擁有 SUPER 權(quán)限的用戶,也無法執(zhí)行寫入(除非關(guān)閉此選項(xiàng))。

主從復(fù)制線程(replication SQL thread)不受此限制——

也就是說:

從庫仍然可以接收主庫的 binlog 更新(包括刪除),
但任何手動(dòng) DELETE 都會(huì)被拒絕。

效果

mysql> delete from user where id=5;
ERROR 1290 (HY000): The MySQL server is running with the --super-read-only option so it cannot execute this statement

主庫發(fā)來的刪除日志仍能正常同步執(zhí)行,不受影響。

推薦用途

  • 用于 防止 DBA 或程序誤操作;
  • 適合所有生產(chǎn)從庫;
  • 只要從庫不承擔(dān)寫操作,就應(yīng)該啟用。

方案二:使用 binlog_ignore_db(僅對復(fù)制過濾)

主庫的 my.cnf 中設(shè)置(而不是從庫):

[mysqld]
binlog_ignore_db=your_database_name

這樣主庫的 DELETE/UPDATE/INSERT 對該數(shù)據(jù)庫不會(huì)寫入 binlog,因此從庫自然不會(huì)同步這些修改。

但這屬于主庫層面的過濾,無法阻止直接在從庫上執(zhí)行刪除。

方案三:在從庫使用 sql_log_bin=0(會(huì)話級控制)

你之前提到的:

SET sql_log_bin=0;

雖然能避免寫入 binlog,但并不能阻止 DELETE 執(zhí)行。
換句話說:

  • DELETE 仍然在從庫執(zhí)行;
  • 只是不會(huì)再同步給其他級聯(lián)從庫(如果存在)。

這種方法適合臨時(shí)會(huì)話,不適合全局防護(hù)。

方案四:觸發(fā)器(不推薦,但可用)

你可以為每個(gè)表添加觸發(fā)器,阻止刪除操作:

CREATE TRIGGER prevent_delete
BEFORE DELETE ON your_table
FOR EACH ROW
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'DELETE not allowed on slave';

但:

  • 要對每個(gè)表單獨(dú)添加;
  • 表結(jié)構(gòu)變動(dòng)時(shí)需重新創(chuàng)建;
  • 不適合大型系統(tǒng)。

方案五:修改從庫權(quán)限(限制賬號)

如果你的應(yīng)用程序在主從庫上使用相同賬號,可以在從庫上收緊權(quán)限:

REVOKE DELETE, UPDATE, INSERT ON *.* FROM 'appuser'@'%';

這樣即使程序誤連從庫,也無法執(zhí)行寫操作。

總結(jié)對比

方法作用范圍能防止所有 DELETE推薦度
super_read_only=ON全局、系統(tǒng)級? 完全禁止?? 最推薦
read_only=ON普通用戶級?(SUPER用戶除外)??
binlog_ignore_db主庫過濾?(從庫仍可刪)??
sql_log_bin=0會(huì)話級??? 臨時(shí)調(diào)試
觸發(fā)器防刪表級?(但繁瑣)?? 一般不推薦
權(quán)限控制用戶級?(僅限指定賬號)? 輔助方案

推薦安全配置組合

在從庫 /etc/my.cnf 中加上:

[mysqld]
read_only=ON
super_read_only=ON
skip_slave_start=0

這樣可以:

  • 防止任何手動(dòng)刪除;
  • 仍然允許主庫復(fù)制更新;
  • 從庫安全可靠。

到此這篇關(guān)于MySQL從庫過濾所有DELETE操作的幾種方案的文章就介紹到這了,更多相關(guān)MySQL過濾所有DELETE操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL主從同步與分庫分表原理及實(shí)現(xiàn)方法

    MySQL主從同步與分庫分表原理及實(shí)現(xiàn)方法

    MySQL主從同步和分庫分表技術(shù)是解決高并發(fā)和大數(shù)據(jù)量問題的關(guān)鍵,本文詳細(xì)解析了這兩項(xiàng)技術(shù)的原理、實(shí)現(xiàn)方法及最佳實(shí)踐,幫助讀者構(gòu)建高性能的MySQL架構(gòu),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • mysql中rpm方式安裝的詳解

    mysql中rpm方式安裝的詳解

    在本文中小編給大家整理了關(guān)于mysql安裝之rpm方式安裝的詳細(xì)步驟以及注意點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • 遠(yuǎn)程連接mysql數(shù)據(jù)庫注意點(diǎn)記錄

    遠(yuǎn)程連接mysql數(shù)據(jù)庫注意點(diǎn)記錄

    有時(shí)候我們需要遠(yuǎn)程連接mysql數(shù)據(jù)庫,那么就需要注意如下問題,需要的朋友可以參考下
    2012-08-08
  • Windows下安裝MySQL5.5.19圖文教程

    Windows下安裝MySQL5.5.19圖文教程

    這篇文章主要介紹了Windows下安裝MySQL5.5.19圖文教程,非常詳細(xì),對每一步都做了說明,需要的朋友可以參考下
    2014-07-07
  • MySQL實(shí)現(xiàn)merge?into四種方法代碼實(shí)例

    MySQL實(shí)現(xiàn)merge?into四種方法代碼實(shí)例

    Merge?into是一個(gè)數(shù)據(jù)庫操作術(shù)語,通常用于將兩個(gè)或多個(gè)表中的數(shù)據(jù)合并到一個(gè)表中,這篇文章主要給大家介紹了關(guān)于MySQL實(shí)現(xiàn)merge?into四種方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • MySql索引使用策略分析

    MySql索引使用策略分析

    這篇文章主要介紹了MySql索引使用策略分析,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-11-11
  • Mysql修改字段類型、長度及添加刪除列實(shí)例代碼

    Mysql修改字段類型、長度及添加刪除列實(shí)例代碼

    在MySQL中可以使用ALTER?TABLE語句來修改表結(jié)構(gòu),包括添加自增屬性,下面這篇文章主要給大家介紹了關(guān)于Mysql修改字段類型、長度及添加刪除列的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • mysql如何獲取自增id

    mysql如何獲取自增id

    這篇文章主要介紹了mysql如何獲取自增id問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • MySQL緩存優(yōu)化方案總結(jié)

    MySQL緩存優(yōu)化方案總結(jié)

    最近迭代的產(chǎn)品版本從2.X來到了3.X,屬于一個(gè)非常大的產(chǎn)品升級,比上個(gè)版本多了很多功能,那么上線之前肯定要在一個(gè)干凈的環(huán)境里進(jìn)行測試回歸以及性能測試,本文總結(jié)一下數(shù)據(jù)庫層面的一些緩存機(jī)制對查詢速度整體的優(yōu)化,需要的朋友可以參考下
    2023-08-08
  • 查看修改mysql編碼方式讓它支持中文(gbk或者utf8)

    查看修改mysql編碼方式讓它支持中文(gbk或者utf8)

    MySQL的默認(rèn)編碼是Latin1,不支持中文,要支持中文需要把數(shù)據(jù)庫的默認(rèn)編碼修改為gbk或者utf8,真的是很麻煩啊,不過本文提供了詳細(xì)的修改教程,感興趣的你可不要走開啊,希望本文對你有所幫助
    2013-01-01

最新評論

阳新县| 繁峙县| 监利县| 祥云县| 濮阳市| 灵川县| 安西县| 延川县| 金门县| 贵德县| 广宁县| 从江县| 鄂伦春自治旗| 安岳县| 岳普湖县| 长宁区| 神池县| 榆树市| 青州市| 九龙坡区| 赞皇县| 靖边县| 万盛区| 灌阳县| 镇宁| 都昌县| 昌宁县| 万全县| 宜州市| 军事| 浮山县| 通化县| 甘泉县| 西贡区| 宁乡县| 灵武市| 宁明县| 安顺市| 海丰县| 刚察县| 冕宁县|