中易网

如何记录MySQL执行过的SQL语句

答案:2  悬赏:80  
解决时间 2021-01-16 06:12
  • 提问者网友:ミ烙印ゝ
  • 2021-01-15 10:12
如何记录MySQL执行过的SQL语句
最佳答案
  • 二级知识专家网友:夜风逐马
  • 2021-01-15 11:00
第一种: 查 Slow query 的 SQL 语法:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2 (超过 2秒的 SQL 语法记录起来, 设短一点来记录除错也是一种方法 XD)
第二种: 设 MySQL Replication 用 binlog:
log_bin = /var/log/mysql/mysql-bin.log (此档要用 mysqlbinlog 解来看)
mysql 会将所有 INSERT/UPDATE/DELETE 语法记於此(但是语法可能跟你想的不同), 这是要写给 SLAVE 用的 log 档
第三种: 推荐此方法, 将 MySQL 执行的每行指令全都记录起来:
log = /tmp/mysql.log
restart mysql 後, tail -f /tmp/mysql.log 就可以看到罗!
补充: 最早前的方法是 mysqldump, 然後执行完後再 mysqldump, 再 diff, 但是在 DB > 1G 後就放弃此方法了 XD
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-01-15 12:07
您好,很高兴为您解答。 开启记录MySQL执行过SQL语句的方法很简单:编辑/etc/my.cnf文件,在[mysqld]节下面添加:log=/var/lib/mysql/sql_row.log行(日志的路径自己根据需要定义)。 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 log=/var/lib/mysql/sql_row.log # Disabling symbolic-links is recommended to prevent assorted security risks; # to do so, uncomment this line: # symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 修改完毕后,记得重启 MySQL: service mysql restart # 或者 /etc/init.d/mysqld stop /etc/init.d/mysqld start 现在去 /var/lib/mysql/ 路径下的 sql_row.log 文件应该是能够看到 MySQL 什么时候执行了哪些程序了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息