mysql如何查看在不同时刻数据库表中数据的变换情况 【问题描述】有应用程序A访问MYSQL的数据库B,假设B中有3张数据库表D、E、F,用户通过应用程序A操作B数据库,我如何才能查看到不同时刻表中数据的变化情况,如D中删除了两条记录,E中某个列的内容背更新,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个你需要打开MYSQL的普通查询日志。 在日志中可以看到所有被执行的SQL语句。5.11.2. 通用查询日志如果你想要知道mysqld内部发生了什么,你应该用--log[=file_name]或-l [file_name]选项启动它。如果没有给定file_name的值, 默认名是host_name.log。所有连接和语句被记录到日志文件。当你怀疑在客户端发生了错误并想确切地知道该客户端发送给mysqld的语句时,该日志可能非常有用。mysqld按照它接收的顺序记录语句到查询日志。这可能与执行的顺序不同。这与更新日志和二进制日志不同,它们在查询执行后,但是任何一个锁释放之前记录日志。(查询日志还包含所有语句,而二进制日志不包含只查询数据的语句)。 服务器重新启动和日志刷新不会产生新的一般查询日志文件(尽管刷新关闭并重新打开一般查询日志文件)。在Unix中,你可以通过下面的命令重新命名文件并创建一个新文件:shell> mv hostname.log hostname-old.logshell> mysqladmin flush-logsshell> cp hostname-old.log to-backup-directoryshell> rm hostname-old.log在Windows中,服务器打开日志文件期间你不能重新命名日志文件。你必须先停止服务器然后重新命名日志文件。然后,重启服务器来创建新的日志文件。 谢谢ACMAIN_CHM但问题是,应用程序A在操作数据库B时,采用的是全删全建的方式,通过查询LOG日志恐怕意义不大,我只是希望能查看到不同时刻表中数据的变换情况 自己写trigger,在表中记录相应操作(DELETE、UPDATE、INSERT),否则用通用日志 打开binlog就可以了 binlog记录了数据库所有的更新操作 不好意思 我没有表达清楚【不同时刻表中数据的变换情况】:假设在时刻G,我的3张数据库表D有3条记录,E为空、F也为空,用户通过应用程序B执行一系列操作后的H,D中删除了一条记录,E和F分别添加了5条记录,我希望看到重G时刻到H时刻,数据库表内容的这个变换情况TO wwwwb:目前A操作数据库,是用的全删全建,查日志和TRIGGER不是很清晰 我的意思是在DELETE、UPDATE、INSERT操作时,在TRIGGER中记录相应的操作,保存在相应的表中 任何数据库本身目录好像都没有这个功能。 通用的做法是,在固定时间点对所有的表做一个快照,但这个快照是需要消耗资源的。如果仅是偶尔需要,则可以在MYSQL中利用备分恢复到某一完全备份点,然后再通过BINLOG从这个完全备份点再逐步前滚恢复到指定时间点。 1449 - The user specified as a definer ('root'@'%') does not exist linux下修改mysql连接 可以支持MySQL的ORM实例代码 宾馆软件是mssql的,想转到mysql.不知道这句存储过程该如何变化 一条语句如何实现下面查询 需要统计一个慢查询日志的 频繁使用的sql 语句 mysql 加密函数 关于Mysql驱动程序 mysql 连接问题(在线等待,解决马上给分) mySQL无法启动服务,新手跪求大神指点 真心不懂 请教一个多表查询问题
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中,服务器打开日志文件期间你不能重新命名日志文件。你必须先停止服务器然后重新命名日志文件。然后,重启服务器来创建新的日志文件。
ACMAIN_CHM但问题是,应用程序A在操作数据库B时,采用的是全删全建的方式,通过查询LOG日志恐怕意义不大,我只是希望能查看到不同时刻表中数据的变换情况
【不同时刻表中数据的变换情况】:
假设在时刻G,我的3张数据库表D有3条记录,E为空、F也为空,用户通过应用程序B执行一系列操作后的H,D中删除了一条记录,E和F分别添加了5条记录,我希望看到重G时刻到H时刻,数据库表内容的这个变换情况TO wwwwb:
目前A操作数据库,是用的全删全建,查日志和TRIGGER不是很清晰