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

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

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

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

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

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

配置方式:

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

[mysqld]
read_only=ON
super_read_only=ON

然后重啟 MySQL:

systemctl restart mysqld

工作原理:

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

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

也就是說:

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

效果

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)從庫;
  • 只要從庫不承擔寫操作,就應該啟用。

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

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

[mysqld]
binlog_ignore_db=your_database_name

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

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

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

你之前提到的:

SET sql_log_bin=0;

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

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

這種方法適合臨時會話,不適合全局防護。

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

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

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

但:

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

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

如果你的應用程序在主從庫上使用相同賬號,可以在從庫上收緊權限:

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會話級??? 臨時調(diào)試
觸發(fā)器防刪表級?(但繁瑣)?? 一般不推薦
權限控制用戶級?(僅限指定賬號)? 輔助方案

推薦安全配置組合

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

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

這樣可以:

  • 防止任何手動刪除;
  • 仍然允許主庫復制更新;
  • 從庫安全可靠。

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

相關文章

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

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

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

    mysql中rpm方式安裝的詳解

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

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

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

    Windows下安裝MySQL5.5.19圖文教程

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

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

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

    MySql索引使用策略分析

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

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

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

    mysql如何獲取自增id

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

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

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

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

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

最新評論

武安市| 湖南省| 微山县| 旌德县| 尉氏县| 怀集县| 雷波县| 宜州市| 乡宁县| 嘉兴市| 咸丰县| 桐柏县| 鄯善县| 方正县| 茶陵县| 临邑县| 南丰县| 旬阳县| 油尖旺区| 息烽县| 策勒县| 潜江市| 玉环县| 宿松县| 威宁| 刚察县| 布拖县| 大姚县| 忻城县| 大兴区| 巴塘县| 大新县| 湘乡市| 巫溪县| 聂拉木县| 柳林县| 汝州市| 华宁县| 丹巴县| 福安市| 依安县|