十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
查看二进制日志功能是否打开:show variables like '%bin%';如果log-bin显示off就是没打开,没打开的话就在/etc/my.cnf中的[MySQLd]下添加log-bin=mysql-bin(其中mysql-bin是日志文件开头名称,可以自定义)
从事眉山服务器托管,服务器租用,云主机,网页空间,申请域名,CDN,网络代维等服务。
mysql误删数据文件,
第一种方法:这种方式需要二进制文件内容很全,如果二进制文件里面没有建表语句,drop的那个表你也就无法恢复
查看正在使用的是哪个二进制文件:show master status;看到是mysql-bin.000002
备份:mysqlbinlog mysql-bin.000002 > test1.sql
修改掉敏感数据:例如drop database xx
恢复:mysql < test1.sql
第二种方法:
第一步,查看当前正在使用的二进制日志文件的名字是什么:show master status;
查看当前一共有多少二进制日志文件以及他们的大小: show master logs;
第二:看日志文件的命令,主要看日志文件里有什么sql语句,找出时间点进行下面的恢复操作:/usr/local/mysql/bin/mysqlbinlog mysql-bin.000091 | less
两种从二进制日志文件恢复方式:一个是按照时间:/usr/local/mysql/bin/mysqlbinlog --start-datetime '2017-02-14 0:12:59' --stop-datetime '2017-02-14 0:13:31' mysql-bin.000091 | mysql -uroot -proot 时间要看的准
上图中的create table c2的开始时间是2017-02-14 0:12:59 ,停止时间是: 2017-02-14 0:13:31
第二个 上图的at xxx,xxx是大小,看大小:/usr/local/mysql/bin/mysqlbinlog --start-position=361 --stop-position=574 mysql-bin.000091 | mysql -uroot -proot