网站首页技术博客
基于general_log的mysql日志追踪
摘要基于mysql的general_log 可以实现日志追踪,这在平时的开发调试中非常有用。
首先可以通过
show variables like 'general_log'; -- 查看日志是否开启
来查看mysqlServer的日志状态,默认是关闭的,因为这个日志的量非常大对资源是一个比较大的开销,所以千万不要在生产环境中开启这个功能!
基于mysql的general_log 可以实现日志追踪,这在平时的开发调试中非常有用。
首先可以通过
show variables like 'general_log'; -- 查看日志是否开启
来查看mysqlServer的日志状态,默认是关闭的,因为这个日志的量非常大对资源是一个比较大的开销,所以千万不要在生产环境中开启这个功能!
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | OFF | +---------------+-------+ 1 row in set (0.00 sec)
接下来通过
set global general_log=on; -- 开启日志功能
来开启日志功能,再次查询
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | ON | +---------------+-------+ 1 row in set (0.00 sec)
general 可以将日志以文件和数据库两种形式进行记录,记录到数据表中要比记录到文件耗费更多的系统资源,所以推荐记录到文件的用法。
通过下边命令可以设置记录到文件还是数据表。
set global log_output='file/table';
通过下边命令可以查看当前的记录类型
show variables like 'log_output'; -- 看看日志输出类型 table或file
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | FILE | +---------------+-------+ 1 row in set (0.00 sec)
可以看到默认是存的file
查看日志文件的位置
show variables like 'general_log_file'; -- 看看日志文件保存位置
+------------------+------------------------------------+ | Variable_name | Value | +------------------+------------------------------------+ | general_log_file | /usr/local/mysql/var/localhost.log | +------------------+------------------------------------+ 1 row in set (0.00 sec)
重新设置日志文件位置
set global general_log_file='/data/mysql_log/general.log'; -- 设置日志文件保存位置
如果报错
ERROR 1231 (42000): Variable 'general_log_file' can't be set to the value of '/data/mysql/general.log'
检查一下目录权限,将目录的owner改为mysql,注意root目录下即使改了owner也是不行的
关闭日志功能
set global general_log=off; -- 关闭日志功能
上一篇:常见HTTP错误代码大全
下一篇:一个多进程管理类