首页
学习
活动
专区
圈层
工具
发布

mysql查看历史sql语句

基础概念

MySQL查看历史SQL语句是指通过特定的工具或方法,记录并查看MySQL数据库服务器上执行过的SQL查询。这对于调试、性能优化、审计和安全监控等方面非常有用。

相关优势

  1. 调试和优化:通过查看历史SQL语句,可以分析查询的执行情况,找出潜在的性能瓶颈。
  2. 审计:对于敏感数据的操作,查看历史SQL语句可以帮助进行安全审计。
  3. 监控:实时监控数据库活动,及时发现异常查询。

类型

  1. 慢查询日志:记录执行时间超过设定阈值的SQL语句。
  2. 通用查询日志:记录所有执行的SQL语句,包括连接、查询等。
  3. 二进制日志:记录所有更改数据的SQL语句,用于数据恢复和复制。
  4. 性能模式:MySQL 5.5及以上版本提供的一种性能监控工具,可以记录详细的查询执行信息。

应用场景

  • 数据库性能调优:通过分析慢查询日志,找出执行缓慢的SQL语句并进行优化。
  • 安全审计:通过查看历史SQL语句,监控对敏感数据的访问和修改。
  • 故障排查:在数据库出现问题时,通过查看历史SQL语句,找出可能导致问题的操作。

遇到的问题及解决方法

问题1:如何开启MySQL的慢查询日志?

解决方法

代码语言:txt
复制
-- 查看当前慢查询日志状态
SHOW VARIABLES LIKE 'slow_query_log';

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';

-- 设置慢查询时间阈值(单位:秒)
SET GLOBAL long_query_time = 2;

-- 查看慢查询日志文件路径
SHOW VARIABLES LIKE 'slow_query_log_file';

问题2:如何查看通用查询日志?

解决方法

通用查询日志通常不推荐在生产环境中使用,因为它会记录所有SQL语句,导致日志文件迅速增大。

代码语言:txt
复制
-- 开启通用查询日志
SET GLOBAL general_log = 'ON';

-- 查看通用查询日志文件路径
SHOW VARIABLES LIKE 'general_log_file';

问题3:如何查看二进制日志?

解决方法

代码语言:txt
复制
-- 查看二进制日志状态
SHOW VARIABLES LIKE 'log_bin';

-- 查看二进制日志文件列表
SHOW BINARY LOGS;

问题4:如何使用性能模式查看历史SQL语句?

解决方法

  1. 启用性能模式
代码语言:txt
复制
-- 安装性能模式插件
INSTALL PLUGIN performance_schema SONAME 'performance_schema.so';

-- 启用性能模式
SET GLOBAL performance_schema = 'ON';
  1. 查看历史SQL语句
代码语言:txt
复制
-- 查询performance_schema中的events_statements_history表
SELECT * FROM performance_schema.events_statements_history;

参考链接

希望这些信息对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql查看执行过的历史sql语句

端产品更新需同步到B端,2)B端订单需要同步到一套ERP系统;3)订单管理、财务结算、物流配置需要全部在erp中实现;为了提交开发效率,打算用最传统的方法:通过在被同步端按人工录入一次数据,记录一次执行sql...语句,即方便、快捷、实用而且还准确,同时也能监控是否有其它未知问题。...查看mysql日志状态,日志路径show variables like 'general_log%'开启日志记录:set GLOBAL general_log=on关闭日志记录set GLOBAL general_log...=off本人开发环境是5.7,其它版本暂未测试,是否有效请自行测试,详情可以参考mysql官网有关“通用查询日志”https://dev.mysql.com/doc/refman/8.0/en/query-log.html...英文不好的同事可以百度或者使用chrome自带翻译,查看更方便。

1.7K10

MySQL查看实时执行的SQL语句

MySQL默认不能实时查看执行的SQL语句,因为这会消耗一定的资源。 要开启这个功能,稍微配置一下,打开这个LOG记录就可以了。 1 查看LOG功能 首先,查看是否已经开启实时SQL语句记录。...语句功能,并指定自定义的log路径: mysql> SET GLOBAL general_log = 'ON'; mysql> SET GLOBAL general_log_file = '/var/...2.2 永久开启 永久有效需要配置my.cnf文件,加入下面两行: general_log = 1 general_log_file = /var/log/mysql/general_sql.log 重启...3 实时查看 过一小段时间后,就可以导出查看/var/lib/mysql/sql_statement.log文件了,里面记录了所有执行的SQL语句。...如果要实时查看该文件的改动,在Linux系统用tail命令: $ tail -f /var/lib/mysql/general_sql.log 另外,也可以用BareTail软件实时查看。

6.5K20
  • MySQL性能优化-查看执行慢的SQL语句

    MySQL性能优化-查看执行慢的SQL语句 查看执行慢的SQL语句,需要先开启慢查询日志 默认情况下,MySQL数据库没有开启慢查询日志 慢日志常用配置项 #是否启用慢查询日志 slow_query_log...= ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql/my-slow.log #慢查询执行时间阈值,超过此时间会记录,默认为10,单位为s...show variables like '%slow_query_log%'; 查看慢查询日志存放文件位置 show variables like '%slow_query_log%'; 查看long_query_time...阈值 show variables like '%long_query_time%'; 修改配置文件配置慢日志 #使用vi编辑器编辑mysql配置信息 vi /etc/my.cnf #设置以下配置项:...#是否启用慢查询日志 slow_query_log = ON #指定慢查询日志文件位置及名称 slow_query_log_file = /var/lib/mysql/my-slow.log #慢查询执行时间阈值

    1.4K10

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句

    MySQL使用技巧: 如何查看mysql正在执行的SQL语句 背景: 最近项目开发用到MySQL,想要查看后台执行的sql语句,立马google得知、可以使用 show processlist; 命令来解决...,通过里面输出结果的字段解释中可以分析执行了的sql语句类型,但发现不太适合一般的初级使用者,而通过日志文件查看sql语句是最直接的方法。.../log.txt1    log=d:/mysql/data/log.txt 3:如此就可以记录所有的mysql执行的sql语句!  ...state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态的描述,请注意,state只是语句执行中的某一个状态,  一个sql语句,已查询为例,可能需要经过copying to tmp...table,Sorting result,Sending data等状态才可以完成,   info列,显示这个sql语句,因为长度有       限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据

    12.2K20

    mysql查看版本sql_linux查看mysql版本

    【使用命令行查看mysql版本-直接查看】:在命令行输入“mysql–version",按”Enter“键即可....【使用命令行查看mysql版本-mysql变量查看】:在命令行输入“mysql",按”Enter“进入mysql命令行模式,输入”showvariableslike’version’;“即可....【在wamp查看】:点击wampserver,选择”mysql“子目录”version“即可....status可以看到 1、使用-V参数首先我们想到的肯定就是查看版本号的参数命令,参数为-V(大写字母)或者–version使用方法:D:\xampp\mysql\bin>mysql-V或者D:\xampp...\mysql\bin> 查看mysql版本方法一:status;方法二:selectversion(); 一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看:看你的mysql现在已提供什么存储引擎

    26.9K10
    领券