mysql数据库被删库怎么办
mysql数据库被删库怎么办
打开数据库⼀看,保存的数据全不见了,只剩下⼀个叫PLEASE_READ_ME_VVV的数据库。
⾥⾯写着
To recover your lost Database and avoid leaking it: Send us 0.045 Bitcoin (BTC) to our Bitcoin address
1McksxpysJGSG9a9zHvan5f8Y1nfpDbVYF and contact us by Email with your Server IP or Domain name and a Proof of Payment. Your Database is downloaded and backed up on our servers. Backups that we have right now: *. Any email without your server IP Address or Domain Name and a Proof of Payment together will be ignored. If we dont receive your payment in the next 10 Days, we will make your database public or use them otherwise.
翻译过来就是:
要恢复丢失的数据库并避免泄漏:请将0.045⽐特币(BTC)发送到我们的⽐特币地址
1Mcksxpysjgsg9a9zhvan5f8y1nfpdbvyf,并通过电⼦邮件与您的服务器IP或域名和付款证明联系。您的数据库已下载并备份到我们的服务器上。我们现在拥有的备份:*。任何没有您的服务器IP地址或域名和付款证明⼀起的电⼦邮件都将被忽略。如果我们在未来10天内没有收到您的付款,我们将公开您的数据库或使⽤它们。
被了。
第⼀步,打开⾕歌寻解决办法。看到这篇博⽂,遇到了同样的问题。
数据库被⼈⽐特币惨遭删库
以下内容,针对具体情况进⾏进⼀步处理。
第⼆步,查看⾃已是否打开了mysql的binlog
SHOW VARIABLES LIKE 'log_bin%';
复制代码
+---------------------------------+---------------------------------------+
| Variable_name                  | Value                                |
+---------------------------------+---------------------------------------+
| log_bin                        | ON                                    |
| log_bin_basename                | /usr/local/var/mysql/mysql-bin      |
| log_bin_index                  | /usr/local/var/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF                                  |
| log_bin_use_v1_row_events      | OFF                                  |
| sql_log_bin                    | ON                                    |
+---------------------------------+---------------------------------------+
6 rows in set (0.00 sec)
复制代码
log_bin是ON说明mysql是开启了binlog的,到了binlog的位置,在
mysql下载不了怎么办
/usr/local/var/mysql/mysql-bin
于是
cd /usr/local/var/mysql
复制代码
其中的mysql-bin.00000*就是binlog⽂件。
binlog是Mysql sever层维护的⼀种⼆进制⽇志,与innodb引擎中的redo/undo log是完全不同的⽇志;其主要是⽤来记录对mysql数据更新或潜在发⽣更新的SQL语句,并以"事务"的形式保存在磁盘中;
作⽤主要有:
复制:MySQL Replication在Master端开启binlog,Master把它的⼆进制⽇志传递给slaves并回放来达到master-slave数据⼀致的⽬的
数据恢复:通过mysqlbinlog⼯具恢复数据
增量备份
然后我们打开最新的binlog⽂件,在⽂件的最后⼏⾏,你会发现令⼈窒息的操作
好了,这下我明⽩了,⼈家直接drop了。
第三步:使⽤binlog恢复⽂件
原理就是binlog保存了你所有的数据库操作,相当于你重新执⾏了在执⾏drop之前所有的增删改查。
那么我们就需要到发⽣删除的时间点。如上图所⽰,# 190622 9:32:19
所以使⽤mysqlbinlog恢复数据库
在/usr/local/var/mysql ⽬录下执⾏
mysqlbinlog --start-datetime='2019-01-01 00:00:00' --stop-datetime='2019-06-24 10:30:00' mysql-bin.000001 |  mysql -h 123.45.678.9 -u root -p -P 3306复制代码
其中
start-datetime=为你想恢复的起始位置,⼀般为刚创建数据库的时候
stop-datetime=为被删库之前的时间,只要是被删库之前就可以
mysql-bin.000001为要恢复的binlog⽂件,将所有相关的mysql-bin都写上,以逗号隔开
mysql -h 123.45.678.9 -u root -p -P 3306 为你的远程数据库地址
123.45.678.9为远程ip
root为⽤户名
3306为端⼝号
第四步:恢复完成
如果第三步出错,⼀般都在于没有选择合适的起始和终⽌时间,这个需要⾃⼰去寻
恢复过程视数据库⼤⼩时间长短不定

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。