我正在为我的PHP / MySQLi应用程序构建一个日志类。我显然可以记录原始的预处理语句(带有问号),但是无需手动解析它,无论如何都可以看到在MySQL中执行的实际原始查询?
谢谢!
答案 0 :(得分:1)
打开MySQL中的查询日志记录并监视mysql查询日志文件。
在mysqld
部分的my.cnf或my.ini文件中添加指令:
log = /path/to/my/log/file
答案 1 :(得分:0)
有很多方法可以看到'原始'查询,使用tcpdump,mysql-proxy端口嗅探,或者观看'mysqladmin -ppasswd'进程列表'',但是很短的时间你可以这样做:
Start:
echo "set global general_log_file=mysqllogfile;set global general_log=1;" | mysql -u root -ppasswd
From now on all queries will appear in /var/lib/mysql/mysqllogfile
Stop:
echo "set global general_log=0;" | mysql -u root -ppasswd
完成后别忘了禁用!
您可以将查询记录到表mysql.general_log:
echo "set global log_output=TABLE;" | mysql -u root -ppasswd
# restart logging
echo "set global general_log=0;" | mysql -u root -ppasswd
echo "set global general_log=1;" | mysql -u root -ppasswd
请注意,查看general_log表也会导致更新它们!