日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!

發布時間:2023/12/10 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方藍色“冰河技術”,關注并選擇“設為星標”

持之以恒,貴在堅持,每天進步一點點!

作者個人研發的在高并發場景下,提供的簡單、穩定、可擴展的延遲消息隊列框架,具有精準的定時任務和延遲隊列處理功能。自開源半年多以來,已成功為十幾家中小型企業提供了精準定時調度方案,經受住了生產環境的考驗。為使更多童鞋受益,現給出開源框架地址:

https://github.com/sunshinelyz/mykit-delay

PS: 歡迎各位Star源碼,也可以pr你牛逼哄哄的代碼。? ? ??

寫在前面

今天,一位哥們打電話來問我說誤操作了他們公司數據庫中的數據,如何恢復。他原本的想法是登錄數據庫update一個記錄,結果忘了加where條件,于是悲劇發生了。今天,我們不講如何恢復誤操作的數據(后面專門講如何恢復誤刪除的數據),我們講講如何從源頭上避免這樣的問題,這才是避免類似問題的根本措施。

如果文章對你有所幫助,請不要吝惜你的點贊、在看、留言和轉發,你的支持是我持續創作的最大動力!

在mysql命令加上選項-U后,當發出沒有WHERE或LIMIT關鍵字的UPDATE或DELETE時,MySQL程序就會拒絕執行。那么,我們基于MySQL提供的這項設置,就可以輕松實現如何最大程度防止人為誤操作MySQL數據庫了。什么?你不信?不信我們就從MySQL的幫助說明說起,一起來看看如何基于MySQL的-u選項實現如何最大程度防止人為誤操作MySQL數據庫。

MySQL幫助說明

[root@binghe~]#?mysql?--help|grep?dummy??????-U,?--i-am-a-dummy?Synonym?for?option?--safe-updates,?-U. i-am-a-dummy??????FALSE

在mysql命令加上選項-U后,當發出沒有WHERE或LIMIT關鍵字的UPDATE或DELETE時,MySQL程序就會拒絕執行。

指定-U登錄測試

[root@binghe~]#?mysql?-uroot?-proot?-S?/data/3306/mysql.sock?-U Welcome?to?the?MySQL?monitor.?Commands?end?with?;?or?\g. Your?MySQL?connection?id?is?14 Server?version:?5.7.24-log?MySQL?Community?Server?(GPL) Copyright?(c)?2000,?2018,?Oracle?and/or?its?affiliates.?All?rights?reserved. Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its affiliates.?Other?names?may?be?trademarks?of?their?respective owners. Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement. mysql>?delete?from?oldboy.student; ERROR?1175?(HY000):?You?are?using?safe?update?mode?and?you?tried?to?update?a?table?without?a?WHERE?that?uses?a?KEY?column mysql>?quit Bye

提示:不加條件無法刪除,目的達到。

指定別名

我們可以將操作MySQL的命令做成別名,防止他人和DBA誤操作數據庫,將操作MySQL的命令做成別名也非常簡單,這里,我們直接上示例了,如下所示。

[root@binghe~]#?alias?mysql='mysql?-U' [root@binghe~]#?mysql?-uroot?-poldboy123?-S?/data/3306/mysql.sock Welcome?to?the?MySQL?monitor.?Commands?end?with?;?or?\g. Your?MySQL?connection?id?is?15 Server?version:?5.7.24-log?MySQL?Community?Server?(GPL) Type?'help;'?or?'\h'?for?help.?Type?'\c'?to?clear?the?current?input?statement. mysql>?delete?from?oldboy.student; ERROR?1175?(HY000):?You?are?using?safe?update?mode?and?you?tried?to?update?a?table?without?a?WHERE?that?uses?a?KEY?column mysql>?delete?from?oldboy.student?where?Sno=5; Query?OK,?1?row?affected?(0.02?sec) mysql>?quit Bye

在命令行會話設置alias mysql='mysql -U'之后,只能在當前會話有效,關閉當前連接服務器的命令行之后,會話失效,則別名設置也會隨之失效。如果想關閉連接服務器的會話終端,別名設置仍然有效,或者多個會話都能夠使用這個別名來操作數據庫,則我們可以將設置別名的命令添加到/etc/profile系統環境變量中,如下所示。

[root@binghe~]#?echo?"alias?mysql='mysql?-U'"?>>/etc/profile [root@binghe~]#?.?/etc/profile [root@binghe~]#?tail?-1?/etc/profile alias?mysql='mysql?-U'

這樣,當我們退出當前連接服務器的會話終端,MySQL的別名設置依然有效,每次連接服務器時,不必在當前會話中重新設置MySQL的命令別名,直接使用即可。

總結

在mysql命令加上選項-U后,當發出沒有WHERE或LIMIT關鍵字的UPDATE或DELETE時,MySQL程序拒絕執行。

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

總結

以上是生活随笔為你收集整理的【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。