Mysql bin-log日志配置与恢复数据
1:在使用日志之前先确认日志是否已经开启了,登录mysql客户端,
mysql -uroot -p123456
(如果是源码安装且没有把mysql bin的路径加入到环境变量中,可以输入
/usr/local/mysql/bin/mysql -uroot -p123456
或 在家目录配置.bash_profile文件把/usr/local/mysql/bin一次性加到环境变量中),输入:
shou variables like "%bin%",
查看log_bin 的值是不是ON。
2:配置bin-log日志,如果上述的log_bin的值不是ON,则编辑MySQL的配置文件,
vim /etc/my.cnf,
在[mysqld](注意不是mysqld_safe)模块下加入
log_bin=/usr/local/mysql/log/mysql-bin
(log一定要存在,log文件是以mysql-bin开头)。
3:重启MySQL客户端,
service mysqld restart,
这时在/usr/local/mysql/log目录下你可以看到两个文件,分别是
mysql-bin.000001与mysql-bin.index,
mysql-bin.000001才是记录MySQL的增删改数据记录,登录到MySQL CLI,
切换到test数据库,
use test,
创建一张表,
create table tlog(
id int(10) unsigned not null
)engine=innodb default charset=utf8 collate=utf8_general_ci;
插入一条数据:
insert into tlog values(13);
刷新bin-log日志,输入:
flust logs,
这时候在/usr/local/mysql/log下就多了一个mysql-bin.000002文件
4:现在模拟服务器奔溃了,数据都丢失了,要恢复到以前的数据,在MySQL CLI中输入:
delete from tlog;
现在把数据都删除了,在shell CLI中输入:
mysqlbinlog /usr/local/mysql/log/mysql-bin.000001 | mysql -uroot -p123456 test
(test是数据库,因为日志是二进制的,所以vi与vim等一般的编辑器查看不了,可以用
mysqlbinlog /usr/local/mysql/log/mysql-bin.000001
来查看)