MySQL二进制日志的使用方法

  

这篇文章给大家分享的是MySQL二进制日志的使用方法,使用二进制日志可以实现异地容灾备份,读写分离,数据恢复等功能,通过这篇文章的总结,希望你能学会使用MySQL二进制日志。

log-bin=mysql-bin   binlog_format=混合   服务器id=1   expire_logs_days=10

log-bin配置了该项后,即表示开启二进制日志功能.mysql-bin是bin-log日志文件名。

expire_logs_days=10表明只存放最近10天的bin-log日志。

一般bin-log日志存放在mysql安装路径/var/下面

<强>运维提示:二进制日志文件与数据库数据文件最好不要放在同一块硬盘上,如果存放数据文件的硬盘坏了,可以用另一块硬盘的二进制日志来恢复数据

<强>

    <李>

    刷新日志:生成新的bin-log日志

    <李>

    显示主状态:查看最后一个bin-log日志状态。

    <李>

    重置大师:清空所有bin-log文件

mysql祝辞显示主状态

 MySQL二进制日志的使用方法

<强>

因为该日志是二进制日志,所以用一般的命令猫或vim查看会是一推乱码.Mysql为我们提供了工具mysqlbinlog。用它就可以来查看了。

。/mysqlbinlog . ./var/mysql-bin.000015   ……   # 123   # 200601 8:35:19服务器id 154 end_log_pos CRC32 0 xd25b404e Previous-GTIDs   #(空)   设置@@SESSION。GTID_NEXT=& # 39;自动# 39;/*添加mysqlbinlog *//* ! */;   分隔符;   #日志文件的结束/* !50003集COMPLETION_TYPE=@OLD_COMPLETION_TYPE */;/* !50530集@@SESSION.PSEUDO_SLAVE_MODE=0 */;   以前……
    <李>

    : sql开始时pos节点

    <李>

    server_id:数据库主机的服务号;

    <李>

    end_log_pos 154: sql结束时的pos节点

mysqlbinlog常见的选项有以下几个:

    <李>

    ——start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地计算机的时间

    <李>

    ——stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地计算机的时间取值和上述一样

    <李>

    ——起始位置:从二进制日志中读取指定位置事件位置作为开始。

    <李>

    ——停止位置:从二进制日志中读取指定位置事件位置作为事件截至

    <李>

    - d,——数据库=名字:只查看指定数据库的日志操作

    <李>

    导出sql文件命令:mysqldump数据库名字(数据表名字1(数据表名字2…]]比;外部文件目录(建议使用. sql)

    <李>

    sql文件导入数据库:mysql - u * * - p * *,数据库名字& lt;备份文件目录

现在模拟一种场景:一数据库每晚3点定时备份,第二天网站正常运行了半天,突然在下午5点钟的时候,程序员小一不小心,删除时候没有加的条件,然后其中某张表数据全没了,然后小一个找到技术总监大圣,让大圣帮忙恢复数据。

binlog_test数据库只有一张用户表

凌晨三点时没备份前的数据如下:

+ - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - +   | user_id |用户名| add_time |   + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | 1 | gwx | 2018-07-05 13:00:31 |   | 2 | snn | 2018-07-05 14:00:00 |   | 3 | zy | 2018-07-05 15:00:00 |   + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

凌晨3点到了,备份数据

,mysqldump binlog_test - l - f比;/root/sql_backup/20180706.sql   我/root/sql_backup/总用量4   -rw-r - r - 2149 7月6 42根根20180706. sql=======数据备份完成=========

网站正常运行一段时间,有许多用户注册

插入的用户(用户名)值(& # 39;user1 # 39;), (& # 39; user2 # 39;), (& # 39; user3 # 39;);   查询好,3行影响(0.01秒)   记录:3重复:警告:0   从用户选择*;   + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | user_id |用户名| add_time |   + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | 1 | gwx | 2018-07-05 13:00:31 |   | 2 | snn | 2018-07-05 14:00:00 |   | 3 | zy | 2018-07-05 15:00:00 |   user1 | 4 | | 2018-07-06 15:01:18 |   | 5 | user2 | 2018-07-06 15:01:18 |   | 6 | user3 | 2018-07-06 15:01:18 |   + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +==============新增了3个用户user1 user2及user3==============

MySQL二进制日志的使用方法