鸿 网 互 联 www.68idc.cn

当前位置 : 主页 > 数据库 > mysql > >

mysql bin-log日志与mysqldump备份与恢复

来源:互联网 作者:佚名 时间:2017-02-11 10:33
简介: mysql的bin-log日志是一种二进制的日志(默认存在于mysql/data下) 1. 用于恢复数据 2.有三种类型的日志 2.1.log-slow-queries日志是慢查询日志 [记录用户在查询的时候超过了时间的查询日志就会记录] 2.2.log-error日志是错误日志 [记录用户执行出错

简介:

mysql的bin-log日志是一种二进制的日志(默认存在于mysql/data下)
1. 用于恢复数据
2.有三种类型的日志
2.1.log-slow-queries日志是慢查询日志
[记录用户在查询的时候超过了时间的查询日志就会记录]
2.2.log-error日志是错误日志
[记录用户执行出错的语句]
2.3.log-bin日志是用户行为日志
[记录所有的增删改操作]


1.开启Mysql bin-log日志

         vim /etc/my.cnf    (修改mysql配置)
         在 [mysqld]增加 log_bin=mysql-bin
        重启服务

2.查看是否开启binlog日志

       show variables查看
        show variables   like  '%bin%'

         可以看到mysql-bin 是已经开启了

3.常用的日志命令

      3.1.flush logs;

       pos位置是指你的增删改的语句的位置在哪里
        (每次执行语句都会给该数据建立position位置)
       刷新bin日志并创建新的日志开始记录
        ( 从现在开始记录增删改记录)
   3.2.show master status;
       查看最后一个bin日志
   3.3reset master;
       清空所有的bin-log日志
   3.4.mysqlbinlog --no-defaults mysql-00001.bin(在mysql/bin下)
       查看binlog日志
       例:/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001

4.通过binlog恢复数据

         4.1删除所有数据
            truncate t1;
         4.2.执行恢复命令

/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 |/usr/local/mysql/bin/mysql -u root -p123 test

报错:Warning: Using a password on the command line interface can be insecure.
在命令行输入密码,就会提示这些安全警告信息
解决方法就是不输入密码
/usr/local/mysql/bin/mysqlbinlog mysql-bin.000001 |/usr/local/mysql/bin/mysql -u root -p test

        4.3指定开始和结束的pos或者指定日期恢复
            1.--stop-position='100'
            2.--start-position='50'
            3.--stop-date='2012-01-04 21:17:50'
            4.--start-date='2012-01-04 19:10:10'

指定pos恢复
mysqlbinlog –start-position=’199’ –stop-position=’292’ mysql-bin.000005 |/usr/local/mysql/bin/mysql -u root -p123 test

5.mysql备份

5.1备份数据(/usr/local/mysql/bin/mysqldump )
    mysqldump -u root -p123 test -l -F  > '/usr/test.sql';
     -l:指的是读锁,开启了读锁所有的增删改的操作都是无效的只能读取
     -F:即flush logs,可以重新生成新的日志文件,当然包括binlog日志

6.实现一个完整的数据库备份恢复与binlog恢复

              6.1.备份数据(/usr/local/mysql/bin/mysqldump )
                    mysqldump -u root -p123 test -l -F  > '/usr/test.sql';    
              6.2.在备份了之后进行了增删改操作
                    insert t1 values(4),(5),(6); 
              6.3.模拟数据库崩溃,丢失       
                    truncate t1;  删除所有数据
                    drop table t1; 删除表
             6.4.先恢复备份数据 
                /usr/local/mysql/bin/mysql -u root -p test < test.sql /usr/local/mysql/bin/mysqlbinlog mysql-bin.000005 | /usr/local/mysql/bin/mysql -u root -p test  
网友评论