如题,因为经常想知道SQL执行不成功是Java的问题还是SQL语句的问题,另外也想知道MySQL端接收到的真实SQL语句是什么,所以想请问有没有办法读取MySQL的所有执行的SQL的记录,或者是否可以设置MySQL保存相应的SQL执行日志呢?感谢!
如题,因为经常想知道SQL执行不成功是Java的问题还是SQL语句的问题,另外也想知道MySQL端接收到的真实SQL语句是什么,所以想请问有没有办法读取MySQL的所有执行的SQL的记录,或者是否可以设置MySQL保存相应的SQL执行日志呢?感谢!
3 回答3.7k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答2.1k 阅读
3 回答2.1k 阅读
1 回答950 阅读
1 回答634 阅读✓ 已解决
1 回答918 阅读
可以使用 MySQL 的 "general_log" 系统表。这个表会记录所有执行的 SQL 语句,包括执行时间、用户名、客户端地址等信息。
要使用 "general_log" 系统表,需要在 MySQL 中开启日志功能。具体来说,可以在 MySQL 的配置文件中(例如 my.cnf)添加以下行:
然后重启 MySQL 服务,就可以开始记录日志了。
之后,你可以使用 SQL 语句查询 "general_log" 系统表,来获取所有 SQL 语句的执行记录。例如:
这条语句会返回 2022 年 1 月份所有已执行的 SQL 语句的信息。
请注意:开启日志会对 MySQL 的性能造成一定影响,因为 MySQL 需要花费额外的时间来记录日志。