如何在MySql中记录SQL日志
SQL server有一个sql profiler可以实时跟踪服务器执行的SQL语句,这在很多时候调试错误非常有用。例如:别人写的复杂代码、生产系统、无调试环境、无原代码... ...
查了一下资料,My SQL可以用下面方法跟踪sql 语句,以下方法以Windows平台为例,linux雷同:
1 配置my.ini文件(在安装目录,linux下文件名为my.cnf)
查找到[mysqld]区段,增加日志的配置,如下示例:
[mysqld] log="C:/temp/mysql.log" log_slow_queries="C:/temp/mysql_slow.log" long_query_time=1
log指示日志文件存放目录;
log_slow_queries指示记录执行时间长的sql日志目录;
long_query_time指示多长时间算是执行时间长,单位s。
Linux下这些配置项应该已经存在,只是被注释掉了,可以去掉注释。但直接添加配置项也OK啦。
2 重新启动mysql服务。
注意事项:
A 日志存放目录必须提前存在,否则不能记录日志。这里也局势C:/temp目录必须已经存在
B 日志文件是linux格式的文本,建议用ultraEdit打开,转换为dos格式查看(否则没有换行,看不懂的)
C 服务在启动状态下不能删除日志文件,否则就无法记录sql语句了。
D 不能用ultraEdit直接清除文件内容后保存,否则也记录不下来了。需要重启服务,如果ultraEdit保存了.bak,后记录到此文件中。
E 可以用notepad清除文本后保存,可以继续记录日志。(怪怪的,也不建议用)
最后更新:2017-04-03 12:56:39
上一篇:
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
下一篇:
System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 无法与 Microsoft 分布式事务协调程序交谈 (异常来自 HRESU
Java Reflection(八):注解
RHEL安装heartbeat报错: heartbeat: udpport setting must precede media statements
11月3日云栖精选夜读:《maven实战》读书笔记2——maven安装(windows和eclipse插件)
如何给视频加边框
Android开发6——布局中的wrap_content和fill_parent以及match_parent
如何在 AWS EC2 的 Linux 服务器上开放一个端口
企业没“文化”很可怕
Android的内容观察者
OA协同办公考勤比传统考勤更方便的三个体现
《Spring Boot官方指南》27.1.11. CORS support