Oct
20
今天下午上服务器看下数据库顺便备份一下
打开phpmyadmin就顺手点了下用户。看到一个没用的账号就点删除。想删除这个用户
用户删除之后。跑去备份数据库。结果傻眼了。数据库没了。
刚才删用户的时候phpmyadmin下面的"Drop the databases that have the same names as the users. "打了个勾?
TM的。连同数据库一块删了。KAO啊。
找了很多办法,想在linux下恢复数据库的目录。问了很多人。都说无解。主机商也说没办法。我KAO。
无奈之下去看了下my.cnf 结果发现服务器上的二进制日志是开着的。上帝保佑啊
使用mysqlbinlog就可以恢复之前的误删操作了
首先还是在确保二进制日志是开启的
我的日志名设置为binlog.0000XX
先是使用mysqlbinlog将日志文件输出为文本格式来分析一下
/usr/local/web/mysql/bin/mysqlbinlog binlog.000011 > /tmp/11.txt
/usr/local/web/mysql/bin/mysqlbinlog binlog.000012 > /tmp/12.txt
/usr/local/web/mysql/bin/mysqlbinlog binlog.000013 > /tmp/13.txt
查看文本发现里面全是用户的操作记录
我在13.txt最底部找到了删除用户的记录
下面来恢复数据库先。首先导入前几个月的备份数据库。
然后慢慢恢复。先恢复前两个二进制日志
/usr/local/web/mysql/bin/mysqlbinlog binlog.000011 |/usr/local/web/mysql/bin/mysql -uroot -p
/usr/local/web/mysql/bin/mysqlbinlog binlog.000012 |/usr/local/web/mysql/bin/mysql -uroot -p
现在到第三个日志来了,也就是包含删除用户记录的日志
最尾部
# at 3649944
DROP USER 'database'@'localhost'
位置在 3649944 那就恢复第三个日志从开始至3649944的位置。后面的就不管了
这样就KO了
假如在删除语句后面还有要恢复的 比如3649955行后的数据都要恢复 那就使用--start-pos=3649955
--stop-pos=600 //从日志头部至600位置结束
--start-pos=1111 //人日志1111的位置开始恢复
打开phpmyadmin就顺手点了下用户。看到一个没用的账号就点删除。想删除这个用户
用户删除之后。跑去备份数据库。结果傻眼了。数据库没了。
刚才删用户的时候phpmyadmin下面的"Drop the databases that have the same names as the users. "打了个勾?
TM的。连同数据库一块删了。KAO啊。
找了很多办法,想在linux下恢复数据库的目录。问了很多人。都说无解。主机商也说没办法。我KAO。
无奈之下去看了下my.cnf 结果发现服务器上的二进制日志是开着的。上帝保佑啊
使用mysqlbinlog就可以恢复之前的误删操作了
首先还是在确保二进制日志是开启的
我的日志名设置为binlog.0000XX
先是使用mysqlbinlog将日志文件输出为文本格式来分析一下
/usr/local/web/mysql/bin/mysqlbinlog binlog.000011 > /tmp/11.txt
/usr/local/web/mysql/bin/mysqlbinlog binlog.000012 > /tmp/12.txt
/usr/local/web/mysql/bin/mysqlbinlog binlog.000013 > /tmp/13.txt
查看文本发现里面全是用户的操作记录
我在13.txt最底部找到了删除用户的记录
下面来恢复数据库先。首先导入前几个月的备份数据库。
然后慢慢恢复。先恢复前两个二进制日志
/usr/local/web/mysql/bin/mysqlbinlog binlog.000011 |/usr/local/web/mysql/bin/mysql -uroot -p
/usr/local/web/mysql/bin/mysqlbinlog binlog.000012 |/usr/local/web/mysql/bin/mysql -uroot -p
现在到第三个日志来了,也就是包含删除用户记录的日志
最尾部
# at 3649944
DROP USER 'database'@'localhost'
位置在 3649944 那就恢复第三个日志从开始至3649944的位置。后面的就不管了
/usr/local/web/mysql/bin/mysqlbinlog binlog.000013 --stop-pos=3649944 |/usr/local/web/mysql/bin/mysql -uroot -p
这样就KO了
假如在删除语句后面还有要恢复的 比如3649955行后的数据都要恢复 那就使用--start-pos=3649955
/usr/local/web/mysql/bin/mysqlbinlog binlog.000013 --start-pos=3649955 |/usr/local/web/mysql/bin/mysql -uroot -p
--stop-pos=600 //从日志头部至600位置结束
--start-pos=1111 //人日志1111的位置开始恢复
JavaScript连接
php 里的三种 sen



