mysql高难度问题,高人帮看看

haorenr 2012-04-03 10:56:31
我现在系统用的是mysql,由于系统程序代码过多,查找程序执行的sql比较麻烦,现在的问题是:

程序运行一段时间有一条sql语句删除了news表里的数据,我现在找不到出来是哪条sql语句

1.有没有什么办法可以记录news表执行delete的祥细语句的方法呀?
2.触发器能记录吗?
3.最好是记录到一个日志表里去,这样好查询

提示我的意思是只启示news表的delete语句,不是所有表的
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-04-04
  • 打赏
  • 举报
回复
[Quote]5.11.2. 通用查询日志
如果你想要知道mysqld内部发生了什么,你应该用--log[=file_name]或-l [file_name]选项启动它。如果没有给定file_name的值, 默认名是host_name.log。所有连接和语句被记录到日志文件。当你怀疑在客户端发生了错误并想确切地知道该客户端发送给mysqld的语句时,该日志可能非常有用。
mysqld按照它接收的顺序记录语句到查询日志。这可能与执行的顺序不同。这与更新日志和二进制日志不同,它们在查询执行后,但是任何一个锁释放之前记录日志。(查询日志还包含所有语句,而二进制日志不包含只查询数据的语句)。

服务器重新启动和日志刷新不会产生新的一般查询日志文件(尽管刷新关闭并重新打开一般查询日志文件)。在Unix中,你可以通过下面的命令重新命名文件并创建一个新文件:

shell> mv hostname.log hostname-old.log
shell> mysqladmin flush-logs
shell> cp hostname-old.log to-backup-directory
shell> rm hostname-old.log
在Windows中,服务器打开日志文件期间你不能重新命名日志文件。你必须先停止服务器然后重新命名日志文件。然后,重启服务器来创建新的日志文件。

[/Quote]
Rotel-刘志东 2012-04-04
  • 打赏
  • 举报
回复
还是日志文件能找到其删除的,触发器是记录不了的。
ACMAIN_CHM 2012-04-03
  • 打赏
  • 举报
回复
MYSQL有一个一般查询日志,打开这个日志功能,可以记录,什么时候执行了什么SQL语句。
rucypli 2012-04-03
  • 打赏
  • 举报
回复
打开log-bin参数 这个参数能够记录数据库所有的更新操作

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧