Écriture des requêtes dans un journal de bord sur disque
Contrairement à SQL Server, lequel utilise le SQL Server Profiler fournit avec le logiciel SSMS, le MySQL utilise plutôt un fichier de sortie. Pour le déboguage d'une requête SQL de MySQL, on peut indiquer à MySQL qu'il faut écrire dans le fichiers «/data/www/monsite/», en entrant ses commandes :
Ainsi vous verrez, tous les requêtes exécutés dans votre BD, comme le montre l'exemple suivant :
/usr/libexec/mysqld, Version: 5.5.29-cll (MySQL Community Server (GPL) by Atomicorp). started with: Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock Time Id Command Argument 130528 15:51:31 58 Connect root@localhost as on 58 Init DB unis_sys 58 Query SET NAMES 'UTF8' 58 Query SET sql_mode='' 58 Query SELECT * FROM matable1 58 Query SELECT * FROM matable2 58 Query SELECT * FROM matable1 ORDER BY name 58 Quit |
Remarque
- Attention ! Il faut s'assurer que le fichier existe ou qu'il dispose des permissions nécessaires car sinon il retournera un message d'erreur «ERROR 1231 (42000): Variable 'general_log_file' can't be set to the value».
- general_log_file in Windows : Si vous indiquez un chemin sous le système d'exploitation Windows, vous devez changer le barre oblique «\» pour «/» comme
si c'était un chemin Linux. La base de données ne retourne pas d'erreur si vous changez pas vos barres obliques, toutefois, vous ne verrez rien apparaître dans votre fichier de journal de bord.
Refus d'insertion de données à cause des contraintes
Lorsqu'on importe des données de façon isolé pour tester des mécanismes, il n'est pas rare que les données refuses de s'insérer dans une table. Pour contourner le problème il faut simplement désactiver cette vérification que fait MySQL et le tour est joué. Ainsi pour désactiver temporairement les contraintes des «FOREIGN KEY», il faudra envoyer la requête SQL suivante :
- SET FOREIGN_KEY_CHECKS = 0;
Cette requête SQL permet de réactiver les contraintes des «FOREIGN KEY» une fois que vos INSERT de MySQL sont terminés :
- SET FOREIGN_KEY_CHECKS = 1;
Voir également
Article - Les géants de l'informatique - Oracle