Heute rief mich ein Kollege aus meiner früheren Firma an und fragte mich, wie ich die Datenbankdaten wiederherstellen könne, die ich versehentlich manipuliert hatte. Seine ursprüngliche Idee bestand darin, sich bei der Datenbank anzumelden und einen Datensatz zu aktualisieren, aber er vergaß, den Ort anzugeben, und es passierte eine Tragödie. Heute werden wir nicht darüber sprechen, wie man missbrauchte Daten wiederherstellt. Wir werden darüber sprechen, wie man solche Probleme von der Quelle aus vermeidet. In Ordnung. Gehen wir direkt zum Thema:
1. MySQL-Hilfebeschreibung
[root@liuyazhuang151 ~]# mysql --help|grep dummy -U, --i-am-a-dummy Synonym for option --safe-updates, -U. i-am-a-dummy FALSE
Nach dem Hinzufügen der Option -U zum MySQL-Befehl, wenn ein UPDATE oder DELETE ohne das Schlüsselwort WHERE oder LIMIT vorliegt ausgegeben, mysql Das Programm verweigert die Ausführung
2. Geben Sie -U login test an
[root@liuyazhuang151 ~]# 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
Tipp: Es kann nicht gelöscht werden, ohne Bedingungen hinzuzufügen. Der Zweck wird erreicht.
3. Erstellen Sie einen Alias, um andere und DBA vor Fehlbedienungen zu schützen
[root@liuyazhuang151 ~]# alias mysql='mysql -U' [root@liuyazhuang151 ~]# 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 [root@liuyazhuang151 ~]# echo "alias mysql='mysql -U'" >>/etc/profile [root@liuyazhuang151 ~]# . /etc/profile [root@liuyazhuang151 ~]# tail -1 /etc/profile alias mysql='mysql -U'
4 MySQL Nach dem Hinzufügen der Option -U zum Befehl verweigert das MySQL-Programm die Ausführung, wenn ein UPDATE oder DELETE ohne das Schlüsselwort WHERE oder LIMIT ausgegeben wird.
Das Obige ist der Inhalt von MySQL – wie man menschliche Fehler verhindert vom Betrieb der MySQL-Datenbank und mehr. Für verwandte Inhalte achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!