Maison  >  Article  >  base de données  >  MySQL - Comment éviter les erreurs humaines lors du fonctionnement de la base de données MySQL

MySQL - Comment éviter les erreurs humaines lors du fonctionnement de la base de données MySQL

黄舟
黄舟original
2017-01-21 13:24:141278parcourir

Aujourd'hui, un collègue de mon ancienne entreprise m'a appelé et m'a demandé comment récupérer les données de la base de données que j'avais manipulées par erreur. Son idée initiale était de se connecter à la base de données et de mettre à jour un enregistrement, mais il a oublié d'indiquer où, et une tragédie s'est produite. Aujourd'hui, nous n'allons pas parler de la façon de récupérer les données mal utilisées. Nous allons parler de la façon d'éviter de tels problèmes à la source. C'est la mesure fondamentale pour éviter des problèmes similaires. Très bien. Passons directement au sujet :

1. Description de l'aide MySQL

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

Après avoir ajouté l'option -U à la commande mysql, lorsqu'un UPDATE ou DELETE sans le mot clé WHERE ou LIMIT est émis, mysql Le programme refusera de s'exécuter

2. Spécifiez -U login test

[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

Astuce : il ne peut pas être supprimé sans ajouter de conditions. L'objectif est atteint.


3. Créez un alias pour empêcher les autres et le DBA de mal fonctionner

[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. Conclusion :

dans. MySQL Après avoir ajouté l'option -U à la commande, lorsqu'un UPDATE ou DELETE sans le mot-clé WHERE ou LIMIT est émis, le programme mysql refuse de s'exécuter

Ce qui précède est le contenu de MySQL - comment éviter les erreurs humaines de l'exploitation de la base de données MySQL, et plus encore. Pour le contenu associé, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn