MySQL之——如何防止人為誤操作MySQL資料庫
今天,一位原公司的同事,打電話來問我說誤操作了資料庫資料,如何恢復。他原本的想法是登入資料庫update一個記錄,結果忘了加where,於是悲劇發生了。今天,我們不講如何恢復誤操作的資料,我們講講如何從源頭上避免這樣的問題,這才是避免類似問題的根本措施。好了。我們直接進入主題:
1、MySQL幫助說明
[[email protected] ~]# 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程式就會拒絕執行2、指定-U登入測試
提示:不加條件無法刪除,目的達到。[[email protected] ~]# 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.5.32-log MySQL Community Server (GPL) Copyright (c) 2000, 2013, 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
3、做成別名防止他人和DBA誤操作
[[email protected] ~]# alias mysql='mysql -U'
[[email protected] ~]# 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.5.32-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
[ [email protected] ~]# echo "alias mysql='mysql -U'" >>/etc/profile
[[email protected] ~]# . /etc/profile
[[email protected] ~]# tail -1 /etc/profile
alias mysql='mysql -U'
4、結論:
在mysql命令加上選項-U後,當發出沒有WHERE或LIMIT關鍵字的UPDATE或DELETE時,mysql程式拒絕執行
相關推薦
MySQL之——如何防止人為誤操作MySQL資料庫
今天,一位原公司的同事,打電話來問我說誤操作了資料庫資料,如何恢復。他原本的想法是登入資料庫update一個記錄,結果忘了加where,於是悲劇發生了。今天,我們不講如何恢復誤操作的資料,我們講講如
(轉)防止人為誤操作MySQL數據庫技巧一例
mysq ring 5.5 作者 trade ffi ont sql 領導 原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://oldboy.blog.51cto.com/2561410/1321061 防
恢復 MySQL 資料庫人為誤操作丟失的資料
1. 全量備份與增量備份理論基礎 1.1 全量備份 全量資料就是資料庫中的所有資料,全量備份就是把資料庫中所有的資料進行備份。 1.2 增量備份 增量資料就是從上次全量備份之後,到下一次全備之前時間段更新的新資料。對於 MySQL 來說,binlog 日誌就是 MySQL 的增量資料。 1.3 按天
資料庫之ubuntu下如何安裝MySQL?如何管理和操作MySQL?
文章目錄 1. 如何安裝MySQL? 1.1 安裝資料庫伺服器 1.2 安裝客戶端程式 1.3 安裝一些庫及標頭檔案 2. 如何管理MySQL?開啟、關閉、檢視等 2
MySQL之終端(Terminal)管理資料庫、資料表、資料的基本操作
MySQL有很多的視覺化管理工具,比如“mysql-workbench”和“sequel-pro-”。 現在我寫MySQL的終端命令操作的文章,是想強化一下自己對於MySQL的理解,總會比使用圖形化的理解透徹,因為我本來就比較喜歡寫程式碼。同時寫出來這些文章,是想要給大家當個參考,希望也能對大家有所幫助,有所
nodejs之MAC上終端操作mysql資料庫(一)
-------------刪除解除安裝mysql資料庫--------- 解除安裝MySQL,終端執行: 開啟終端視窗 使用mysqldump備份你的資料庫將文字檔案! 停止資料庫伺服器 sudo rm /usr/local/my
Mac上MySQL之初始化密碼操作
個人在Mac上操作資料庫,遇到的啟動資料庫問題的簡單記錄 1、蘋果->系統偏好設定->最下邊點mysql 在彈出頁面中 關閉mysql服務(點選stop mysql server)
MySQL之庫、表操作
一、庫操作 建立庫 create database 庫名(charset utf8 對庫的編碼進行設定,不寫就用預設值) 庫名可以由字母、數字、下劃線、特殊字元,要區分大小寫,唯一性,不能使用關鍵字,不能用數字開頭,最長128位 檢視資料庫注意:在cmd中輸入指令是不區分大小寫的 show datab
MySQL之——表資料檔案損壞導致資料庫無法啟動
一、問題日誌 2017-08-31 14:18:05 4122 [Note] InnoDB: Database was not shutdown normally! 2017-08-31 14:18:05 4122 [Note] InnoDB: Starting cra
使用mysql的binlog恢復誤操作(update|delete)的資料
binlog格式介紹 MYSQL binlog複製主要有三種方式:基於SQL語句的複製(statement-based replication, SBR),基於行的複製(row-based replication, RBR),混合模式複製(mixed-bas
PC軟體開發技術之三:C#操作SQLite資料庫
我們在開發應用是經常會需要用到一些資料的儲存,儲存的方式有多種,使用資料庫是一種比較受大家歡迎的方式。但是對於一些小型的應用,如一些移動APP,通常的資料庫過於龐大,而輕便的SQLite則能解決這一問題。不但操作方便,而且只需要要一個檔案即可,在這裡我們來說一說使用C#語言操作SQLite資料庫
XAMPP安裝之後,還用裝MYSQL嗎?怎樣以cmd操作MYSQL,怎樣進入設定?
(一)不用裝MYSQL了。 (二)DOS介面操作MYSQL: 首先,要知道自己把MySQL資料夾放在哪了,這很重要!在這裡有個情況要說明下: 那就是要不要配置環境變數的問題,如果配置的話優點很明顯,即每次開啟MySQL服務不用在尋找MySQL資料夾中bin資料夾的放置路徑
Redis之使用lua指令碼操作redis資料庫的原因
前言 為什麼要用lua指令碼操作redis資料庫? 1.減少開銷–減少向redis伺服器的請求次數 2.原子操作–redis將lua指令碼作為一個原子執行 3.可複用–其他客戶端可以使用已經執行過的lua指令碼 4.增加redis靈活性–lua指令碼可以幫助redis做
【Mac系統 + Python + Django】之開發一個釋出會系統【Django模型(二)】 【Mac系統 + Mysql】之安裝Mysql資料庫 【Python + Mysql】之用pymysql庫連線Mysql資料庫並進行增刪改查操作
上一部分給大家介紹Django的檢視。 接下來繼續來了解Django框架,來看第二部分,此部分是對資料庫的操作。 目錄: 一、設計系統表 二、admin後臺管理 三、基本資料訪問(SQLite資料庫) 四、Django配置MySQL &
MySQL之DDL操作資料庫
DDL(Data Definition Language),翻譯過來叫:資料庫定義語言,用於在資料庫定義建立或刪除資料庫物件等操作,例如:create(建立)、drop(刪除)、alter(修改)等語句。 &nbs
誤刪資料庫怎麼辦?mysql 回滾,撤銷操作,恢復資料
剛剛不小心把資料庫刪掉了,於是想著上網上找找有沒有可以恢復資料庫的方法,沒想到還真有,除了備份以外,還有以下方法。 在mysql有時執行了錯誤的update或者delete時導致大量資料錯誤恢復的辦法。執行時沒有開啟事務,也沒有對資料進行。這時就需要使用到sqlbinlog工具。 sqlbinlog需要開
mysql學習【第3篇】:資料庫之增刪改查操作 資料庫之表操作,資料操作
資料庫之表操作,資料操作 注意的幾點:1.如果你在cmd中書命令的時候,輸入錯了就用\c跳出 2.\s檢視配置資訊
關係型資料庫MySQL之觸發器和表資料操作
一、觸發器(TRIGGER) 觸發器是MySQL的資料庫物件之一,該物件與程式語言中的函式非常類似,都需要申明、執行等。 1.1、 建立觸發器 1> 建立有一條執行語句的觸發器 建立觸發器通過SQL語句CREATE TRIGGER 來
Python之 操作 MySQL 資料庫
什麼是MySQLdb? MySQLdb 是用於Python連結Mysql資料庫的介面,它實現了 Python 資料庫 API 規範 V2.0,基於 MySQL C API 上建立的。 安裝 Python MySQLdb 模組 linux版本:(配置好yum源) pip install MySQL-
jdbc操作mysql資料庫(防止注入攻擊版本)
package TestJDBC; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.