Je sais qu'il y a General_Log qui enregistre toutes les questions, mais je souhaite savoir quelle requête a une erreur et obtenez le message d'erreur. J'ai essayé d'exécuter une requête d'erreur exprès, mais elle se connecte comme une requête normale et ne le signalez pas avec une erreur. Des idées? p>
6 Réponses :
J'ai essayé d'exécuter une requête d'erreur sur but, mais il se connecte comme une requête normale et ne le signalez pas avec une erreur. Tout idées? p>
Alors, vous avez fait mal. Aucune autre idée sans le code. P>
en PHP Je le fais de cette façon (supposez que vous utilisez le pilote MySQL): P>
$res=mysql_query($sql) or trigger_error(mysql_error().$sql);
J'entraîne SQL à PHPMYADMIN 3.3.2 le fait-il mal?
@user phpmyAdmin est une application mono-utilisateur, il n'a donc pas besoin d'une journalisation.
Trigger_error écrit-il au journal MySQL ou PHP? Parce que j'ai eu des scripts shell qui utilisent également MySQL.
@user c'est la directive PHP. Il écrit dans le journal d'erreur PHP standard.
Merci de réponse, mais ne résout pas mon problème, c'est dépendant PHP.
Pourquoi? une question - pourquoi? Est-ce trop difficile pour ... faire? Il suffit de connecter la requête et l'erreur lorsque vous le renvoyez sur le client ..
@Serge: Je ne sais pas. On dirait que cela ne devrait pas être trop difficile à mettre en œuvre. Peut-être une chose de séparation de préoccupations (c'est-à-dire que c'est la responsabilité du client d'obtenir le droit d'instruction SQL, et il est libre de connecter l'échec tel qu'il le souhaite).
Même si cette question est assez ancienne, j'espère que cela sera utile à une personne qui recherchait des requêtes d'erreur de journal MySQL ou des termes similaires.
Il y a pas trop longtemps, j'ai également besoin de MySQLD pour enregistrer uniquement des requêtes erronées. J'ai trouvé que MySQL-proxy vous permet de le faire et écrit un petit script Lua: p> Pour utiliser le script, exécutez p> ou Si cela échoue (> = v0.9) p> Le proxy fonctionne sur le port et exécutez un SQL défectueux. p> Quand tout semble être dans l'ordre Votre application à 4040 au lieu du port MySQLD réel et vous avez une erreur d'erreur MySQL sur le niveau de la base de données. P> Note finale: mysql-proxy est bêta. strong> Utilisez avec prudence. Course ici depuis près d'une demi-année maintenant sans problèmes, cependant YMMV. P> P> somedb code>. < Code> mysql_error code> à aimer, mais n'oubliez pas de le faire dans le script de Lua ci-dessus aussi. p>
/ chemin / à / mysql-proxy --Proxy-lua-script = / chemin / à / mysql-proxy-log-error-requis.lua code> p>
/ chemin / à / mysql-proxy --Proxy-lua-script = / chemin / à / mysql-proxy-journal-erreurs-erreurs-requêtes .Lua --Plugins = proxy code> p>
4040 code> Par défaut, pour tester: p>
mysql -u Nom d'utilisateur -P --Host = 127.0.0.1 --Port = 4040 code> p>
Nice, a pris une allée et a pris un certain temps pour le faire travailler enfin, mais travaille comme un charme. BTW, ce n'est même pas bêta, c'est toujours alpha. dev.mysql.com/downloads/mysql-proxy
N'est-ce pas un tueur de performance? Je pense que cette manipulation des erreurs sur le côté du client irait bien
Bien d'entendre ça! :)
Je sais que cela est ancien maintenant, mais pour toute personne ayant le même problème qui atterrit ici de Google, voici mes deux cents.
Si vous utilisez le client CLI, vous pouvez simplement rediriger votre arrêt dans un fichier, puis analyser cela. p>
Merci, je ne savais pas que cela pourrait faire cela plutôt que de vous connecter à un fichier. Je me suis rendu compte à une base de données à la place. À votre santé.
Il est possible de loger des requêtes d'erreur avec le Audit Mariahb Plugin .
Le plugin d'audit Mariadb fonctionne pour Mariadb, MySQL et PerCona Server. P> BlockQuote>
Par exemple, pour ces requêtes P>
20150807 23:00:36,mnv-Satellite-L300D,root,localhost,82,377,QUERY,`test`,'select now() LIMIT 0, 1000',0 20150807 23:00:37,mnv-Satellite-L300D,root,localhost,82,379,QUERY,`test`,'select now()+()',1064 20150807 23:00:37,mnv-Satellite-L300D,root,localhost,82,382,QUERY,`test`,'select 9+()',1064 20150807 23:00:38,mnv-Satellite-L300D,root,localhost,82,383,QUERY,`test`,'select \'hello\' LIMIT 0, 1000',0
Je donne une URL de téléchargement: télécharger.mariadb.com/audit-plugin/mariadb -Audit-plugin
Ça télécharger url télécharger.mariadb.com/audit-plugin/mariadb-audit- Le plugin semble être cassé.
Mariadb est capable de le faire avec un plugin https: // mariadb .Com / kb / fr / sql-error-journal-journal-plugin / qui est distribué avec mariadb.
J'ai essayé d'hier et cela fonctionne comme annoncé. P>
Il faut juste courir : p> et les requêtes avec des erreurs iront à $ $ datadir / sql_errors.log code> qui se trouve sur la plupart des installations Linux sur
/ var / var / var / var / var / lib / mysql / sql_errors.log code>. p> p>