永发信息网

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

答案:2  悬赏:70  手机版
解决时间 2021-02-25 08:18
  • 提问者网友:蔚蓝的太阳
  • 2021-02-25 01:47
如何记录MySQL执行过的SQL语句
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-02-25 03:03
您好,很高兴为您解答。 开启记录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 什么时候执行了哪些程序了。
全部回答
  • 1楼网友:春色三分
  • 2021-02-25 03:25
第一种: 查 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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯