请问关于mysql数据库查询日志的问题

小白619 2015-09-07 04:23:04
求教各大神,mysql数据库本身是否自带操作日志,可以记录数据库里各表中数据的变更情况呢?例如什么时候哪个表里的数据有了变更?有这样的日志吗?怎样查看呢?
...全文
105 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2015-09-08
  • 打赏
  • 举报
回复
引用 7 楼 mary_cuiying 的回复:
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqlbinlog --start-position=4 --stop-position=3000 "C:\ProgramData\MySQL\MySQL Server 5.6\data\mysql.000001" >c:\test.txt 看不懂啊
我的是windows里的,其实在linux还简单。。。 其实就是 先切换到 mysqlbinlog的这个程序的目录下,然后 mysqlbinlog --start-position=4 --stop-position=3000 "C:\ProgramData\MySQL\MySQL Server 5.6\data\mysql.000001" >c:\test.txt 是关键。 position是日志的位置,一个是开始,一个是结束,然后后面那个 "C:\ProgramData\MySQL\MySQL Server 5.6\data\mysql.000001" 是日志文件的位置和路径,最后 把输出内容重定向到 c:\test.txt
小白619 2015-09-08
  • 打赏
  • 举报
回复
C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqlbinlog --start-position=4 --stop-position=3000 "C:\ProgramData\MySQL\MySQL Server 5.6\data\mysql.000001" >c:\test.txt 看不懂啊
LongRui888 2015-09-08
  • 打赏
  • 举报
回复
最后,登录到 mysql里,执行如下的命令: mysql> source c:\\test.txt Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) Charset changed Query OK, 0 rows affected (0.00 sec)
LongRui888 2015-09-08
  • 打赏
  • 举报
回复
引用 4 楼 mary_cuiying 的回复:
[quote=引用 1 楼 yupeigu 的回复:] 首先你要启用binlog,先看看: mysql> show variables like 'log_bin%'; +---------------------------------+--------------------------------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------------------------------+ | log_bin | ON | | log_bin_basename | C:\ProgramData\MySQL\MySQL Server 5.6\Data\mysql | | log_bin_index | C:\ProgramData\MySQL\MySQL Server 5.6\Data\mysql.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | +---------------------------------+--------------------------------------------------------+ 5 rows in set (0.01 sec) 如果没有启用,可以配置文件 my.inf 加入: log-bin = mysql 然后重启mysql,就可以了。 然后,我们可以插入数据: mysql> use world Database changed mysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | | t1 | | tb | | tb1 | | test | | test1 | +-----------------+ 8 rows in set (0.08 sec) mysql> select * from t1 ; +----+------+------+ | id | name | age | +----+------+------+ | 3 | aa | 30 | +----+------+------+ 1 row in set (0.01 sec) 这里插入数据: mysql> insert into t1(name,age) values('bb',100); Query OK, 1 row affected (0.04 sec) mysql> insert into t1(name,age) values('cc',300); Query OK, 1 row affected (0.05 sec) 然后,找到binlog的日志文件 mysql.000001: mysql> show master status; +--------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +--------------+----------+--------------+------------------+-------------------+ | mysql.000001 | 642 | | | | +--------------+----------+--------------+------------------+-------------------+ 1 row in set (0.05 sec) 然后,就可以查看日志: mysql> show binlog events in 'mysql.000001'; +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ | mysql.000001 | 4 | Format_desc | 123456789 | 120 | Server ver: 5.6.25-log, Binlog ver: 4 | | mysql.000001 | 120 | Query | 123456789 | 201 | BEGIN | | mysql.000001 | 201 | Intvar | 123456789 | 233 | INSERT_ID=4 | | mysql.000001 | 233 | Query | 123456789 | 350 | use `world`; insert into t1(name,age) values('bb',100) | | mysql.000001 | 350 | Xid | 123456789 | 381 | COMMIT /* xid=15 */ | | mysql.000001 | 381 | Query | 123456789 | 462 | BEGIN | | mysql.000001 | 462 | Intvar | 123456789 | 494 | INSERT_ID=6 | | mysql.000001 | 494 | Query | 123456789 | 611 | use `world`; insert into t1(name,age) values('cc',300) | | mysql.000001 | 611 | Xid | 123456789 | 642 | COMMIT /* xid=17 */ | +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ 9 rows in set (0.02 sec)
mysql.000001日志文件怎么打开啊?只能用语句查看内容吗?[/quote] C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqlbinlog --start-position=4 --stop-position=3000 "C:\ProgramData\MySQL\MySQL Server 5.6\data\mysql.000001" >c:\test.txt C:\Program Files\MySQL\MySQL Server 5.6\bin>more c:\test.txt /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #150907 18:24:38 server id 123456789 end_log_pos 120 CRC32 0x6cc46a1b Start: b inlog v 4, server v 5.6.25-log created 150907 18:24:38 at startup # Warning: this binlog is either in use or was not closed properly. ROLLBACK/*!*/; BINLOG ' 5mXtVQ8VzVsHdAAAAHgAAAABAAQANS42LjI1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADmZe1VEzgNAAgAEgAEBAQEEgAAXAAEGggAAAAICAgCAAAACgoKGRkAARtq xGw= '/*!*/; # at 120 #150907 18:37:38 server id 123456789 end_log_pos 201 CRC32 0x5fad937b Query thread_id=1 exec_time=0 error_code=0 SET TIMESTAMP=1441622258/*!*/; SET @@session.pseudo_thread_id=1/*!*/; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.uniq ue_checks=1, @@session.autocommit=1/*!*/; SET @@session.sql_mode=1344274432/*!*/; SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/ ; /*!\C gbk *//*!*/; SET @@session.character_set_client=28,@@session.collation_connection=28,@@sessio n.collation_server=33/*!*/; SET @@session.lc_time_names=0/*!*/; SET @@session.collation_database=DEFAULT/*!*/; BEGIN /*!*/; # at 201 # at 233 #150907 18:37:38 server id 123456789 end_log_pos 233 CRC32 0x0a9d7cab Intvar SET INSERT_ID=4/*!*/; #150907 18:37:38 server id 123456789 end_log_pos 350 CRC32 0x3ad17a20 Query -- More (25%) --
小白619 2015-09-08
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
首先你要启用binlog,先看看: mysql> show variables like 'log_bin%'; +---------------------------------+--------------------------------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------------------------------+ | log_bin | ON | | log_bin_basename | C:\ProgramData\MySQL\MySQL Server 5.6\Data\mysql | | log_bin_index | C:\ProgramData\MySQL\MySQL Server 5.6\Data\mysql.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | +---------------------------------+--------------------------------------------------------+ 5 rows in set (0.01 sec) 如果没有启用,可以配置文件 my.inf 加入: log-bin = mysql 然后重启mysql,就可以了。 然后,我们可以插入数据: mysql> use world Database changed mysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | | t1 | | tb | | tb1 | | test | | test1 | +-----------------+ 8 rows in set (0.08 sec) mysql> select * from t1 ; +----+------+------+ | id | name | age | +----+------+------+ | 3 | aa | 30 | +----+------+------+ 1 row in set (0.01 sec) 这里插入数据: mysql> insert into t1(name,age) values('bb',100); Query OK, 1 row affected (0.04 sec) mysql> insert into t1(name,age) values('cc',300); Query OK, 1 row affected (0.05 sec) 然后,找到binlog的日志文件 mysql.000001: mysql> show master status; +--------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +--------------+----------+--------------+------------------+-------------------+ | mysql.000001 | 642 | | | | +--------------+----------+--------------+------------------+-------------------+ 1 row in set (0.05 sec) 然后,就可以查看日志: mysql> show binlog events in 'mysql.000001'; +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ | mysql.000001 | 4 | Format_desc | 123456789 | 120 | Server ver: 5.6.25-log, Binlog ver: 4 | | mysql.000001 | 120 | Query | 123456789 | 201 | BEGIN | | mysql.000001 | 201 | Intvar | 123456789 | 233 | INSERT_ID=4 | | mysql.000001 | 233 | Query | 123456789 | 350 | use `world`; insert into t1(name,age) values('bb',100) | | mysql.000001 | 350 | Xid | 123456789 | 381 | COMMIT /* xid=15 */ | | mysql.000001 | 381 | Query | 123456789 | 462 | BEGIN | | mysql.000001 | 462 | Intvar | 123456789 | 494 | INSERT_ID=6 | | mysql.000001 | 494 | Query | 123456789 | 611 | use `world`; insert into t1(name,age) values('cc',300) | | mysql.000001 | 611 | Xid | 123456789 | 642 | COMMIT /* xid=17 */ | +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ 9 rows in set (0.02 sec)
mysql.000001日志文件怎么打开啊?只能用语句查看内容吗?
rick-he 2015-09-07
  • 打赏
  • 举报
回复
binlog日志 http://bbs.csdn.net/topics/391820759
ACMAIN_CHM 2015-09-07
  • 打赏
  • 举报
回复
引用
5.11. MySQL日志文件 5.11.1. 错误日志5.11.2. 通用查询日志5.11.3. 二进制日志5.11.4. 慢速查询日志5.11.5. 日志文件维护 MySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情: 日志文件 记入文件中的信息类型 错误日志 记录启动、运行或停止mysqld时出现的问题。 查询日志 记录建立的客户端连接和执行的语句。 更新日志 记录更改数据的语句。不赞成使用该日志。 二进制日志 记录所有更改数据的语句。还用于复制。 慢日志 记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。 默认情况下,所有日志创建于mysqld数据目录中。通过刷新日志,你可以强制 mysqld来关闭和重新打开日志文件(或者在某些情况下切换到一个新的日志)。当你执行一个FLUSH LOGS语句或执行mysqladmin flush-logs或mysqladmin refresh时,出现日志刷新。参见13.5.5.2节,“FLUSH语法”。 如果你正使用MySQL复制功能,从复制服务器将维护更多日志文件,被称为接替日志。相关讨论参见第6章:MySQL中的复制。 5.11.1. 错误日志 错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。 如果mysqld莫名其妙地
.
LongRui888 2015-09-07
  • 打赏
  • 举报
回复
首先你要启用binlog,先看看: mysql> show variables like 'log_bin%'; +---------------------------------+--------------------------------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------------------------------+ | log_bin | ON | | log_bin_basename | C:\ProgramData\MySQL\MySQL Server 5.6\Data\mysql | | log_bin_index | C:\ProgramData\MySQL\MySQL Server 5.6\Data\mysql.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | +---------------------------------+--------------------------------------------------------+ 5 rows in set (0.01 sec) 如果没有启用,可以配置文件 my.inf 加入: log-bin = mysql 然后重启mysql,就可以了。 然后,我们可以插入数据: mysql> use world Database changed mysql> show tables; +-----------------+ | Tables_in_world | +-----------------+ | city | | country | | countrylanguage | | t1 | | tb | | tb1 | | test | | test1 | +-----------------+ 8 rows in set (0.08 sec) mysql> select * from t1 ; +----+------+------+ | id | name | age | +----+------+------+ | 3 | aa | 30 | +----+------+------+ 1 row in set (0.01 sec) 这里插入数据: mysql> insert into t1(name,age) values('bb',100); Query OK, 1 row affected (0.04 sec) mysql> insert into t1(name,age) values('cc',300); Query OK, 1 row affected (0.05 sec) 然后,找到binlog的日志文件 mysql.000001: mysql> show master status; +--------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +--------------+----------+--------------+------------------+-------------------+ | mysql.000001 | 642 | | | | +--------------+----------+--------------+------------------+-------------------+ 1 row in set (0.05 sec) 然后,就可以查看日志: mysql> show binlog events in 'mysql.000001'; +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ | mysql.000001 | 4 | Format_desc | 123456789 | 120 | Server ver: 5.6.25-log, Binlog ver: 4 | | mysql.000001 | 120 | Query | 123456789 | 201 | BEGIN | | mysql.000001 | 201 | Intvar | 123456789 | 233 | INSERT_ID=4 | | mysql.000001 | 233 | Query | 123456789 | 350 | use `world`; insert into t1(name,age) values('bb',100) | | mysql.000001 | 350 | Xid | 123456789 | 381 | COMMIT /* xid=15 */ | | mysql.000001 | 381 | Query | 123456789 | 462 | BEGIN | | mysql.000001 | 462 | Intvar | 123456789 | 494 | INSERT_ID=6 | | mysql.000001 | 494 | Query | 123456789 | 611 | use `world`; insert into t1(name,age) values('cc',300) | | mysql.000001 | 611 | Xid | 123456789 | 642 | COMMIT /* xid=17 */ | +--------------+-----+-------------+-----------+-------------+--------------------------------------------------------+ 9 rows in set (0.02 sec)

56,679

社区成员

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

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