在 MySQL 中抓取执行的命令有多种方法,不同的方法适用于不同的场景,以下为你详细介绍:
通用查询日志会记录 MySQL 服务器接收到的所有 SQL 语句,包括查询、插入、更新、删除等操作。
- 开启通用查询日志
- 临时开启:在 MySQL 客户端中执行以下 SQL 语句,该设置在 MySQL 服务器重启后会失效。
SET GLOBAL general_log = 'ON';
SET GLOBAL log_output = 'FILE';
log_output 可以设置为 'FILE'(记录到文件)或 'TABLE'(记录到 mysql.general_log 表)。
- 永久开启:编辑 MySQL 的配置文件(通常是
my.cnf 或 my.ini),在 [mysqld] 部分添加或修改以下内容:
general_log = 1
general_log_file = /path/to/your/general.log
将 /path/to/your/general.log 替换为你希望保存日志文件的路径,保存配置文件后重启 MySQL 服务。
- 查看通用查询日志
- 如果
log_output 设置为 'FILE',可以使用文本编辑器或命令行工具(如 cat、less 等)查看日志文件内容。例如:
less /path/to/your/general.log
- 如果
log_output 设置为 'TABLE',可以在 MySQL 客户端中执行以下 SQL 语句查看日志:
SELECT * FROM mysql.general_log;
- 关闭通用查询日志
- 临时关闭:在 MySQL 客户端中执行以下 SQL 语句:
SET GLOBAL general_log = 'OFF';
- 永久关闭:从配置文件中删除或注释掉相关配置项,然后重启 MySQL 服务。
慢查询日志主要记录执行时间超过指定阈值的 SQL 语句,对于性能优化非常有帮助。
- 开启慢查询日志
- 临时开启:在 MySQL 客户端中执行以下 SQL 语句:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
- 永久开启:编辑 MySQL 的配置文件,在
[mysqld] 部分添加或修改以下内容:
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /path/to/your/slow.log
保存配置文件后重启 MySQL 服务。
- 查看慢查询日志:使用与查看通用查询日志相同的方法查看慢查询日志文件内容。
- 关闭慢查询日志:与关闭通用查询日志的方法类似。
ProxySQL 是一个开源的 MySQL 代理工具,可以拦截和记录所有经过它的 SQL 语句。
- 安装和配置 ProxySQL:按照 ProxySQL 的官方文档进行安装和配置,将其配置为代理 MySQL 服务器。
- 查看记录的 SQL 语句:ProxySQL 提供了一些管理接口和工具,可以查看和分析记录的 SQL 语句。
MySQL Enterprise Monitor 是 MySQL 官方提供的企业级监控工具,可以实时监控 MySQL 服务器的活动,包括执行的 SQL 语句。需要购买 MySQL Enterprise Edition 许可证才能使用该工具。
PMM 是 Percona 公司开发的开源监控工具,支持对 MySQL 等多种数据库的监控。可以通过 PMM 界面查看 MySQL 执行的 SQL 语句和相关性能指标。