mysql数据库怎么开启binlog

mysql数据库怎么开启binlog,第1张

当启动Binlog后,事务会产生Binlog Event,这些Event被看做事务数据的一部分。因此要保证事务的Binlog Event和InnoDB引擎中的数据的一致性。所以带Binlog的CrashSafe要求MySQL宕机重启后能够保证:

- 所有已经提交的事务的数据仍然存在。

- 所有没有提交的事务的数据自动回滚。

- 所有已经提交了的事务的Binlog Event也仍然存在。

- 所有没有提交事务没有记录Binlog Event。

这些要求很好理解,如果重启后数据还在,但是Binlog Event没有了,就没办法复制到其他节点上了。如果重启后,数据没了,但是Binlog Event还在,那么不存在的数据就会被复制到其他节点上,从而导致主从的不一致。

为了保证带Binlog的CrashSafe,MySQL内部使用的两阶段提交(Two Phase Commit)。

主备binlog文件下标是指MySQL中binlog文件的主从复制状态。主备binlog文件下标是一个数字,它表示MySQL主服务器上binlog文件的当前位置,从服务器上的binlog文件下标也是一个数字,它表示从服务器上binlog文件的当前位置。主备binlog文件下标的作用是,当MySQL主从复制过程中出现故障时,可以通过比较主从服务器上binlog文件下标的值来确定哪些数据没有被复制到从服务器上,从而可以快速恢复数据。

是否启用了日志

1

mysql>show variables like 'log_bin';

怎样知道当前的日志

1

mysql> show master status;

看二进制日志文件用mysqlbinlog

shell>mysqlbinlog mail-bin000001(要写绝对问题路径d://)

或者

shell>mysqlbinlog mail-bin000001 | tail

Windows 下用类似的命令。

mysql有以下几种日志:

错误日志: -log-err

查询日志: -log

慢查询日志: -log-slow-queries

更新日志: -log-update

二进制日志:-log-bin在mysql的安装目录下,打开myini,在后面加上上面的参数,保存后重启mysql服务就行了。

查找所有表的语句

select table_name

from information_schematables

where table_schema='当前数据库'

mysql>  use mysql

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql           |

+---------------------------+

| columns_priv              |

| db                        |

| event                     |

| func                      |

| general_log               |

| help_category             |

| help_keyword              |

| help_relation             |

| help_topic                |

| innodb_index_stats        |

| innodb_table_stats        |

| ndb_binlog_index          |

| plugin                    |

| proc                      |

| procs_priv                |

| proxies_priv              |

| servers                   |

| slave_master_info         |

| slave_relay_log_info      |

| slave_worker_info         |

| slow_log                  |

| tables_priv               |

| time_zone                 |

| time_zone_leap_second     |

| time_zone_name            |

| time_zone_transition      |

| time_zone_transition_type |

| user                      |

+---------------------------+

28 rows in set (005 sec)

show tables即为显示当前数据库中所有的表。

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。

具体步骤如下:/导致这种情况的原因主要是

binlog,二进制日志,记录mysql所有 *** 作命令。

可以用来做数据恢复,同时也是mysql主从备份所必需的日志。

用 mysqlbinlog 命令可以直接打开binlog查看。

1、首先确认MySQL是否开启binlog使用showvariableslike'%log_bin%'。

2、其次进入数据库服务器,找到MySQL数据的data数据所在位置。

3、最后binlog日志就在此文件夹下。

mysqlbinlog确实是个强大的mysql数据库辅助工具。

1首先将数据存到mysql

C:\wamp\bin\mysql\mysql558\bin\mysqlbinlogexe --stop-date="2011-10-30 23:30:00" --result-file="c:\mysql" /data/mysql-bin000025 | mysql -uroot

2然后开始还原数据

C:\wamp\bin\mysql\mysql558\bin\mysqlexe source c:\mysql

据对的实战经验啊~~~

以上就是关于mysql数据库怎么开启binlog全部的内容,包括:mysql数据库怎么开启binlog、mysql主备binlog文件下标、如何查看mysql数据库 *** 作记录日志等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9774911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存