关于mysql的日志
在我编写那个小工程的过程中,有一句sql语句的执行总是有问题,然而,因为使用的Spring的JdbcTemplate,内部封装的是PreparedStatement,sql语句是参数化的,我看不到最后被执行的sql语句是什么,而手写了一遍sql语句执行竟然是正常的。这个时候,怎么办,怎么调bug?
我想到的一种方法是,在数据库侧查看执行的sql语句,而这,就需要数据库开启日志功能。
我使用的是mysql5.7,windows10系统,没有启用超级管理员,当时因为处于备份系统的考虑,将mysql装到了系统盘,结果出了一些问题:非超级管理员,在系统盘下,创建文件是受限制的,因此,mysql在系统盘下的安装路径没有配置文件,也没有日志文件,还不能创建配置文件。
上网查询,开启mysql日志的方式多数都是从my.ini入手,而我的情况特殊,干脆没有my.ini文件,这怎么办?
后来查到了通过管理员权限运行命令行,可以开启日志,由于我的需求是看到执行的sql语句,所以我需要开启通用日志。
以下是需要的语句:
/* 首先通过命令行登录mysql,命令为:*/
mysql -h localhost -u username -p
//接下来输入对应的passwprd,进入mysql操作界面
mysql>set global log_output=file;//输出到文件
mysql>set global general_log_file='file-path.log';//输出文件地址
mysql>set global general_log=on;//开启通用日志
mysql>set global general_log=off;//关闭通用日志
参考博客:
1. MySQL中开启和使用通用查询日志的实例教程
2. mysql开启日志功能