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) !