在MySQL中查询执行过的SQL记录,可以通过以下几种方法:
查看MySQL日志文件
通用查询日志:MySQL可以将执行过的SQL语句保存到日志文件中。首先,确保在MySQL的配置文件(通常是`my.cnf`或`my.ini`)中设置了`log_output`为`FILE`,并指定了`general_log_file`的路径和名称,然后将`general_log`设置为`1`以启用通用查询日志。重启MySQL服务器后,所有执行的SQL语句将被记录在指定的日志文件中。通过查看日志文件,可以获取已执行的SQL语句。
使用系统变量
启用通用查询日志:登录到MySQL服务器,执行`SET GLOBAL general_log = 'ON';`以启用通用查询日志。
获取日志文件路径:执行`SHOW VARIABLES LIKE 'general_log_file';`以获取日志文件的路径和名称。
查看正在执行的SQL
使用`information_schema`数据库:切换数据库到`information_schema`,然后执行`SHOW PROCESSLIST;`或`SELECT * FROM information_schema.PROCESSLIST WHERE info IS NOT NULL;`以查看正在执行的SQL语句。
查看历史执行SQL
查询`general_log`表:执行`SELECT * FROM mysql.general_log;`以从MySQL的`general_log`表中检索所有历史执行的SQL语句。这将显示一份包含执行时间、用户、主机、SQL语句等信息的列表。
使用Slow Query Log
开启Slow Query Log:修改MySQL的配置文件`my.cnf`,添加`slow_query_log = 1`和`slow_query_log_file = /path/to/slowquery.log`,并设置`long_query_time`为1(或根据需要调整),然后重启MySQL服务。查看指定的日志文件`/path/to/slowquery.log`,即可看到执行时间超过1秒的SQL语句。
使用Performance Schema
查看执行概要:通过`SHOW PROFILES;`查看最近执行的SQL语句的概要信息,包括查询ID和执行详情。
根据具体需求选择合适的方法来查询执行过的SQL记录。如果需要实时查看执行的SQL语句,建议使用通用查询日志或Slow Query Log。如果需要查看历史记录,则可以使用`general_log`表或日志文件。