Linux通过MySQL二进制日志binlog恢复数据库

Linux通过MySQL二进制日志binlog恢复数据库

进入mysql

查看mysql日志是否启动

进入mysql

mysql>show variables like'log_%';

 

linux下二进制日志设置方法如下

在 /etc/my.cnf文件中【mysqld】下加入

server-id = 1

log-bin = binlog

log-bin-index = binlog.index

binlog日志文件默认在/var/lib/mysql下

查看binlog日志文件命令

mysqlbinlog binlog.000001

查看binlog文件,过滤错误操作,例如第2586行中有删除数据表操作,就要用2586前的sql语句

 

方法如下

mysqlbinlog --stop-position=”2586” /var/lib/mysql/ binlog.000001 >~/nn/ backup_001.sql

还原

mysql –u root –p nsq_name < ~/nn/backup_001.sql

注意一定注意空格和大小写

另:

Linux备份数据库

1.备份 

1 [root@CentOS ~]# mysqldump -u root -p mysql > ~/mysql.sql  #把数据库mysql备份到家目录下命名为mysql.sql

2 Enter password:

3 [root@CentOS ~]# ls ~/mysql.sql

/root/mysql.sql

2.还原

 [root@CentOS ~]# mysql -u root -p web < ~/web.sql  #把web.sql导入数据库web

 

常用binlog日志操作命令

1.查看所有binlog日志列表
      mysql> show master logs;
2.查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值 mysql> show master status;
3.刷新log日志,自此刻开始产生一个新编号的binlog日志文件 mysql> flush logs;
注:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;
在mysqldump备份数据时加 -F 选项也会刷新binlog日志;
4.重置(清空)所有binlog日志 mysql> reset master;
posted @ 2017-09-22 14:20  二班长  阅读(355)  评论(0编辑  收藏  举报