国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

這篇具有很好參考價(jià)值的文章主要介紹了MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

前言

? ? ? ?經(jīng)常聽(tīng)說(shuō)刪庫(kù)跑路這真的不只是一句玩笑話(huà),若不小心刪除了數(shù)據(jù)庫(kù),事情很?chē)?yán)重。你一個(gè)不小心可能會(huì)給公司刪沒(méi)。建議研發(fā)不要直連生成環(huán)境,一般的話(huà)都會(huì)分配賬號(hào)權(quán)限,生產(chǎn)環(huán)境的賬號(hào)盡量是只讀,以防你一個(gè)不經(jīng)意給庫(kù)或表刪除。一定要備份,這很重要,這是一個(gè)血的教訓(xùn)。

1、創(chuàng)建表

DROP TABLE IF EXISTS `user_misjudge`; --如果表存在則刪除,然后執(zhí)行如下語(yǔ)句重新創(chuàng)建。
CREATE TABLE `user_misjudge`  (
   `id` bigint(50) NOT NULL AUTO_INCREMENT,
   `attr1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
   `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
   `attr3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
   `attr4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
   `attr5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
   PRIMARY KEY (`id`) USING BTREE
 ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

2、BigLog日志相關(guān)?

2.1、檢查biglog狀態(tài)是否開(kāi)啟?

聲明: 當(dāng)前為mysql版本5.7? 當(dāng)前為mysql版本5.7??當(dāng)前為mysql版本5.7?

2.1.1、Navicat工具執(zhí)行

SHOW VARIABLES LIKE 'LOG_BIN%';
  • ?OFF 是未開(kāi)啟狀態(tài),如果不是ON 開(kāi)啟狀態(tài)需要開(kāi)啟為ON。{默認(rèn)情況下就是關(guān)閉狀態(tài)}

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

2.1.2、命令行執(zhí)行

  • 其中-h表示服務(wù)器名,localhost表示本地;-u為數(shù)據(jù)庫(kù)用戶(hù)名,root是mysql默認(rèn)用戶(hù)名;-p為密碼,如果設(shè)置了密碼,可直接在-p后鏈接輸入,如:-proot;如果用戶(hù)沒(méi)有設(shè)置密碼,顯示Enter password時(shí),直接回車(chē)即可。
mysql -hlocalhost -uroot -proot

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

2.2、開(kāi)啟biglog

  • ?執(zhí)行語(yǔ)句開(kāi)啟biglog
SET GLOBAL log_bin = 'ON';

執(zhí)行結(jié)果:

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

注意: 報(bào)錯(cuò)了! 報(bào)錯(cuò)了! 報(bào)錯(cuò)不可怕,可怕的是報(bào)錯(cuò)沒(méi)有征兆。如果要永久修改log_bin的值,需要修改MySQL的配置文件(my.cnf或my.ini),并重啟MySQL服務(wù)器使修改生效。(?只讀變量,不能使用set修改,只能通過(guò)修改my.cnf或my.ini文件再重啟生效?)

  1. ?遇到這種錯(cuò)誤,需要修改?my.cnf <Linux系統(tǒng)>?或?my.ini<Windows系統(tǒng)>?配置文件,在 [mysqld] 下面增加?log-bin=mysql-bin??后,重啟MySQL服務(wù)即可
  2. 在 [mysqld] 段落中添加的log-bin=mysql-bin這是一個(gè) MySQL 數(shù)據(jù)庫(kù)的配置選項(xiàng),用于開(kāi)啟二進(jìn)制日志記錄。二進(jìn)制日志可以記錄所有的數(shù)據(jù)庫(kù)操作,包括增刪改查等。開(kāi)啟二進(jìn)制日志記錄可以用于備份和恢復(fù)數(shù)據(jù)庫(kù),以及進(jìn)行數(shù)據(jù)復(fù)制等操作。
  3. 在 [mysqld] 段落中添加 server-id=1 (其中的1可以替換為任意整數(shù),但要確保主從之間的server-id不同)
  4. server-id?是 MySQL 數(shù)據(jù)庫(kù)中的一條配置參數(shù),用于設(shè)置 MySQL 實(shí)例的唯一 ID。每個(gè) MySQL 實(shí)例都必須有一個(gè)唯一的 server-id,以便 MySQL 集群中的各個(gè)節(jié)點(diǎn)能夠相互識(shí)別和通信。通常情況下,server-id?參數(shù)會(huì)被設(shè)置為一個(gè)唯一的數(shù)字或字符串,比如可以設(shè)置為當(dāng)前服務(wù)器的 IP 地址或主機(jī)名。如果在一個(gè) MySQL 集群中配置不正確,可能會(huì)導(dǎo)致數(shù)據(jù)同步出現(xiàn)問(wèn)題,因此需要謹(jǐn)慎配置。
# 開(kāi)啟BigLog用于備份和恢復(fù)數(shù)據(jù)庫(kù),以及進(jìn)行數(shù)據(jù)復(fù)制等操作。
log-bin=mysql-bin  
# 實(shí)例都必須有一個(gè)唯一的 server-id 如:server-id=1 ,以便 MySQL 集群中的各個(gè)節(jié)點(diǎn)能夠相互識(shí)別和通信。
server-id=1 
  • ??ON 是開(kāi)啟狀態(tài),如果是開(kāi)啟狀態(tài)那就可以做數(shù)據(jù)恢復(fù)了。

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

2.3、查看biglog日志文件

show binary logs;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

2.3.1、查看master狀態(tài)

show master status;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?2.3.2、查看第一個(gè)binlog文件內(nèi)容

show binlog events;

?MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?2.3.3、查看指定binlog文件的內(nèi)容

show binlog events in 'mysql-bin.000002';

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

注意:?上一個(gè)事件的結(jié)束位置,就是下一個(gè)事件的開(kāi)始位置。如下↓↓↓

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?2.3.4、刷新log日志

flush logs;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?2.3.5、刪除日志文件

MySQL刪除日志的方式有以下幾種:

  1. 通過(guò)Reset Master指令刪除全部binlog日志,刪除之后,日志編號(hào)將從xxxx.00001重新開(kāi)始。
  2. 執(zhí)行指令purge master logs to 'mysqlbin.******',該命令將刪除指定編號(hào)之前的所有日志。
  3. 執(zhí)行指令purge master logs before 'yyyy-mm-dd hh24:mi:ss',該命令將刪除指定日期之前的所有日志。
  • 列出所有日志
show binary logs;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ?指定刪除
purge master logs to 'mysql-bin.000001';

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ??指定日期刪除(該命令將刪除指定日期之前的所有日志)
purge binary logs before '2023-5-29 23:59:59';

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • 刪除全部binlog日志
 reset master;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

2.3.6、查看和修改日志文件有效期

?說(shuō)明:

  1. 查看日志文件的有效期 show variables like '%expire_logs_days%';默認(rèn)有效期為 0,表示 Binlog 日志的自動(dòng)清理功能是沒(méi)有啟用的
  2. 設(shè)置日志文件有效期 參數(shù)set global expire_logs_days=7; 此參數(shù)的含義是設(shè)置日志的過(guò)期天數(shù)為7天,過(guò)了指定的天數(shù)后日志將會(huì)被自動(dòng)刪除,這樣將有利于減少DBA管理日志的工作量。
  • 查看日志文件的有效期
show variables like '%expire_logs_days%';

?MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • 設(shè)置日志文件有效期
set global expire_logs_days=7;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3、誤刪恢復(fù)

3.1、查看數(shù)據(jù)庫(kù)

show databases;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.2、查看表中的數(shù)據(jù)

 --切換到指定數(shù)據(jù)庫(kù)。
use text; 
--顯示當(dāng)前數(shù)據(jù)庫(kù)中的所有表名。
show tables;
--查詢(xún)表數(shù)據(jù)
select * from user_misjudge;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.3、查看用戶(hù)表相關(guān)操作日志

說(shuō)明:?show binary logs; 和?show master logs; 都是顯示所有可用的binlog日志文件列表。

show master logs;

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?注意: 可以看到我之前刪除的表數(shù)據(jù)已經(jīng)被記錄了 ,由于之前演示刪除日志,我的日志是不完整的不完整的日志是不能恢復(fù)的 。(開(kāi)啟日志后 重新創(chuàng)一個(gè)庫(kù) 詳情查看:3.4重新創(chuàng)建庫(kù)) ↓↓↓

3.4、重新創(chuàng)建庫(kù)

  • 刪除庫(kù)
drop database text
  • 清空全部日志
 reset master;
  • 創(chuàng)建庫(kù)
 CREATE DATABASE `text` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
  • 查看日志信息
show binlog events in 'mysql-bin.000001';

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.4、刪除數(shù)據(jù)庫(kù)?text?

 drop database text;

?MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?可以看到列表text庫(kù)已經(jīng)被刪除?

3.5、恢復(fù)數(shù)據(jù)庫(kù)

3.5.1、查看日志文件中的信息

show binlog events in 'mysql-bin.000001';

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.5.2、利用事件開(kāi)始結(jié)束位置進(jìn)行恢復(fù)

mysqlbinlog --start-position=154 --stop-position=427 mysql-bin.000001 | mysql -uroot -p

以上該命令是一個(gè)從MySQL二進(jìn)制日志文件中提取數(shù)據(jù)并導(dǎo)入到MySQL數(shù)據(jù)庫(kù)的命令。具體解釋如下:

  1. mysqlbinlog:MySQL二進(jìn)制日志文件命令,用于讀取、處理和輸出MySQL二進(jìn)制日志文件中的內(nèi)容。
  2. --start-position=154:指定從二進(jìn)制日志文件的154個(gè)字節(jié)開(kāi)始讀取,默認(rèn)情況下,mysqlbinlog從文件的開(kāi)頭開(kāi)始讀取。
  3. --stop-position=427:指定從二進(jìn)制日志文件的427個(gè)字節(jié)結(jié)束讀取,默認(rèn)情況下,mysqlbinlog讀取到文件的末尾。
  4. mysql-bin.000001:二進(jìn)制日志文件名,表示要讀取的二進(jìn)制日志文件。
  5. |:管道符,將前面的命令的輸出作為后面命令的輸入。
  6. mysql:MySQL客戶(hù)端命令,用于連接和操作MySQL數(shù)據(jù)庫(kù)。
  7. -uroot:指定以root用戶(hù)身份連接MySQL數(shù)據(jù)庫(kù)。
  8. -p:表示連接MySQL數(shù)據(jù)庫(kù)時(shí)需要輸入密碼。
  • 注意: 此命令是使用終端,進(jìn)入MySQL時(shí)的路徑下的?data?目錄下執(zhí)行。

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ?查看是否恢復(fù)刪除的庫(kù)text

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.5.3、查看mysql-bin.000001文件日志細(xì)節(jié)

說(shuō)明

  1. 由于binlog是二進(jìn)制的文件,使用mysqlbinlog命令進(jìn)行轉(zhuǎn)換。
  2. mysqlbinlog:MySQL二進(jìn)制日志文件命令,用于讀取、處理和輸出MySQL二進(jìn)制日志文件中的內(nèi)容。
  3. ?找到安裝MySQL時(shí)的路徑下的?data?目錄,不管你是Linux 或windows,我目前是windows 我就在data目錄下使用cmd (如果是linux查詳細(xì)的日志信息內(nèi)容,同理進(jìn)入MySQL時(shí)的路徑下的?data?目錄,這個(gè)時(shí)候需要用 ls -la 來(lái)查看細(xì)節(jié),執(zhí)行命令:mysqlbinlog 'mysql-bin.000001' )?
  4. 配置MySQL環(huán)境變量,不配置執(zhí)行命令會(huì)失敗,右擊我的電腦–高級(jí)系統(tǒng)設(shè)置–環(huán)境變量–系統(tǒng)變量–Path(點(diǎn)擊,添加MySQL的bin目錄)
  • 生成mysql-bin.000001文件日志細(xì)節(jié)名稱(chēng)是xj.sql
mysqlbinlog "mysql-bin.000001">"xj.sql"

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • 生成后的mysql-bin.000001文件日志位置

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ?解析后的mysql-bin.000001文件日志細(xì)節(jié)

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.5.4、利用事件時(shí)間節(jié)點(diǎn)進(jìn)行恢復(fù)

mysqlbinlog --start-datetime="2023-06-01 11:32:34" --stop-datetime="2023-06-01 11:47:46" mysql-bin.000001 | mysql -uroot -p
  • 查看恢復(fù)的text庫(kù)

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.6、恢復(fù)數(shù)據(jù)庫(kù)表

3.6.1、進(jìn)入庫(kù)

  • 可以看到text庫(kù)下沒(méi)有表

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.6.2、庫(kù)下創(chuàng)建表

  • 建表語(yǔ)句文章開(kāi)頭已經(jīng)給大家準(zhǔn)備直接拿過(guò)來(lái)執(zhí)行。

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • 表已經(jīng)創(chuàng)建成功??

?MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.6.3、庫(kù)下的表中添加數(shù)據(jù)

insert user_misjudge(attr1) values('CSDN臭弟弟');
insert user_misjudge(attr1) values('這是一條數(shù)據(jù)');

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.6.4、刪表之間查看日志信息

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.6.4、刪除表

drop tables user_misjudge;
  • ?查詢(xún)user_misjudge已經(jīng)不存在了

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.6.5、恢復(fù)表

mysqlbinlog --start-position=720 --stop-position=1579 mysql-bin.000001 | mysql -uroot -p
  • ?不用再說(shuō)了吧一定要終端執(zhí)行以上命令,離開(kāi)mysql命令行進(jìn)入mysql路徑下的?data?目錄使用終端執(zhí)行。

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?3.6.7、查看恢復(fù)的表

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • 查看日志
 show binlog events in 'mysql-bin.000001';

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

?可以看到 我們只恢復(fù)了表 并沒(méi)有恢復(fù)數(shù)據(jù) 。為什么???? 往下繼續(xù)↓↓

??3.6.8、分析日志

原因:

? ? ? ?在導(dǎo)航{3.6.5、恢復(fù)表} 我們執(zhí)行的語(yǔ)句mysqlbinlog --start-position=720 --stop-position=1579 mysql-bin.000001 | mysql -uroot -p, 事件開(kāi)始位置720 ,事件結(jié)束位置1579,說(shuō)明我們位置不對(duì)唄,這個(gè)位置只能恢復(fù)表不能恢復(fù)數(shù)據(jù)。(想要恢復(fù)數(shù)據(jù)應(yīng)該在 事件的結(jié)束位置應(yīng)該在 刪除表之前的最后連接的位置才對(duì))

  • 完整日志如下:
mysql> show binlog events in 'mysql-bin.000001';
+------------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Log_name         | Pos  | Event_type     | Server_id | End_log_pos | Info                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
+------------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mysql-bin.000001 |    4 | Format_desc    |         1 |         123 | Server ver: 5.7.28-log, Binlog ver: 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 |  123 | Previous_gtids |         1 |         154 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| mysql-bin.000001 |  154 | Anonymous_Gtid |         1 |         219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  219 | Query          |         1 |         362 | CREATE DATABASE `text` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 |  362 | Anonymous_Gtid |         1 |         427 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  427 | Query          |         1 |         512 | drop database text                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| mysql-bin.000001 |  512 | Anonymous_Gtid |         1 |         577 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  577 | Query          |         1 |         720 | CREATE DATABASE `text` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 |  720 | Anonymous_Gtid |         1 |         785 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  785 | Query          |         1 |        1532 | use `text`; CREATE TABLE `user_misjudge`  (   `id` bigint(50) NOT NULL AUTO_INCREMENT,   `attr1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic |
| mysql-bin.000001 | 1532 | Anonymous_Gtid |         1 |        1597 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 1597 | Query          |         1 |        1669 | BEGIN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 1669 | Table_map      |         1 |        1740 | table_id: 163 (text.user_misjudge)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| mysql-bin.000001 | 1740 | Write_rows     |         1 |        1799 | table_id: 163 flags: STMT_END_F                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| mysql-bin.000001 | 1799 | Xid            |         1 |        1830 | COMMIT /* xid=2016 */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 1830 | Anonymous_Gtid |         1 |        1895 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 1895 | Query          |         1 |        1967 | BEGIN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 1967 | Table_map      |         1 |        2038 | table_id: 163 (text.user_misjudge)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| mysql-bin.000001 | 2038 | Write_rows     |         1 |        2102 | table_id: 163 flags: STMT_END_F                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| mysql-bin.000001 | 2102 | Xid            |         1 |        2133 | COMMIT /* xid=2017 */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 2133 | Anonymous_Gtid |         1 |        2198 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 2198 | Query          |         1 |        2324 | use `text`; DROP TABLE `user_misjudge` /* generated by server */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| mysql-bin.000001 | 2324 | Anonymous_Gtid |         1 |        2389 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 2389 | Query          |         1 |        3136 | use `text`; CREATE TABLE `user_misjudge`  (   `id` bigint(50) NOT NULL AUTO_INCREMENT,   `attr1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic |
+------------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
24 rows in set (0.00 sec)

創(chuàng)建表的起始位置是720 ,在日志中刪除表的結(jié)束之前最后連接的位置是2190,這樣就可以恢復(fù)我們刪表之前的表和兩條數(shù)據(jù)。

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ?再次恢復(fù),直接告訴你會(huì)報(bào)錯(cuò)

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ?為什么報(bào)錯(cuò),已經(jīng)存在了?

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

3.6.9、恢復(fù)表中數(shù)據(jù)

  • 既然表恢復(fù)了,那就恢復(fù)數(shù)據(jù)唄,找事件開(kāi)始結(jié)束位置數(shù)據(jù)節(jié)點(diǎn)
mysql> show binlog events in 'mysql-bin.000001';
+------------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Log_name         | Pos  | Event_type     | Server_id | End_log_pos | Info                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
+------------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mysql-bin.000001 |    4 | Format_desc    |         1 |         123 | Server ver: 5.7.28-log, Binlog ver: 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 |  123 | Previous_gtids |         1 |         154 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| mysql-bin.000001 |  154 | Anonymous_Gtid |         1 |         219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  219 | Query          |         1 |         362 | CREATE DATABASE `text` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 |  362 | Anonymous_Gtid |         1 |         427 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  427 | Query          |         1 |         512 | drop database text                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| mysql-bin.000001 |  512 | Anonymous_Gtid |         1 |         577 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  577 | Query          |         1 |         720 | CREATE DATABASE `text` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 |  720 | Anonymous_Gtid |         1 |         785 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 |  785 | Query          |         1 |        1532 | use `text`; CREATE TABLE `user_misjudge`  (   `id` bigint(50) NOT NULL AUTO_INCREMENT,   `attr1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic |
| mysql-bin.000001 | 1532 | Anonymous_Gtid |         1 |        1597 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 1597 | Query          |         1 |        1669 | BEGIN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 1669 | Table_map      |         1 |        1740 | table_id: 163 (text.user_misjudge)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| mysql-bin.000001 | 1740 | Write_rows     |         1 |        1799 | table_id: 163 flags: STMT_END_F                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| mysql-bin.000001 | 1799 | Xid            |         1 |        1830 | COMMIT /* xid=2016 */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 1830 | Anonymous_Gtid |         1 |        1895 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 1895 | Query          |         1 |        1967 | BEGIN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 1967 | Table_map      |         1 |        2038 | table_id: 163 (text.user_misjudge)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| mysql-bin.000001 | 2038 | Write_rows     |         1 |        2102 | table_id: 163 flags: STMT_END_F                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| mysql-bin.000001 | 2102 | Xid            |         1 |        2133 | COMMIT /* xid=2017 */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| mysql-bin.000001 | 2133 | Anonymous_Gtid |         1 |        2198 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 2198 | Query          |         1 |        2324 | use `text`; DROP TABLE `user_misjudge` /* generated by server */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| mysql-bin.000001 | 2324 | Anonymous_Gtid |         1 |        2389 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| mysql-bin.000001 | 2389 | Query          |         1 |        3136 | use `text`; CREATE TABLE `user_misjudge`  (   `id` bigint(50) NOT NULL AUTO_INCREMENT,   `attr1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr3` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr4` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   `attr5` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,   PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic |
+------------------+------+----------------+-----------+-------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
24 rows in set (0.00 sec)

mysql>
  • 事件開(kāi)始位置720 ~事件結(jié)束位置1579 恢復(fù)的是表,那么事件開(kāi)始位置1532~事件結(jié)束位置2189恢復(fù)的就是那兩條數(shù)據(jù)。
mysqlbinlog --start-position=1532 --stop-position=2189 mysql-bin.000001 | mysql -uroot -p

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)

  • ?查看恢復(fù)的兩條數(shù)據(jù)

MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-472540.html

到了這里,關(guān)于MySQL數(shù)據(jù)庫(kù)誤刪恢復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • mysql數(shù)據(jù)庫(kù)備份和恢復(fù)

    數(shù)據(jù)備份可以分為三種, 熱備份。 數(shù)據(jù)庫(kù)處于運(yùn)行狀態(tài),此時(shí)依賴(lài)數(shù)據(jù)庫(kù)的日志文件進(jìn)行備份 溫備份。 進(jìn)行數(shù)據(jù)備份時(shí)數(shù)據(jù)庫(kù)服務(wù)正常進(jìn)行,但是數(shù)據(jù)智能度不能寫(xiě)。 冷備份。數(shù)據(jù)庫(kù)處于關(guān)閉狀態(tài),能夠夠好的保證數(shù)據(jù)庫(kù)的完整性。 邏輯備份。使用軟件從數(shù)據(jù)庫(kù)中提取數(shù)

    2024年02月12日
    瀏覽(96)
  • 9-MySQL數(shù)據(jù)庫(kù) 數(shù)據(jù)的備份與恢復(fù)

    9-MySQL數(shù)據(jù)庫(kù) 數(shù)據(jù)的備份與恢復(fù)

    1.date文件的備份 2.mysqldump 備份 說(shuō)明: mysqldump是MySQL數(shù)據(jù)庫(kù)中的一個(gè)實(shí)用程序,它主要用于轉(zhuǎn)儲(chǔ)(備份)數(shù)據(jù)庫(kù)。mysqldump通過(guò)生成一個(gè)SQL腳本文件,包含從頭開(kāi)始重新創(chuàng)建數(shù)據(jù)庫(kù)所必需的(如 CREATE TABLE和INSERT等),來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的備份和轉(zhuǎn)儲(chǔ)。這樣,你可以在任何時(shí)候通過(guò)運(yùn)

    2024年02月08日
    瀏覽(96)
  • 數(shù)據(jù)庫(kù)應(yīng)用:MySQL備份與恢復(fù)

    數(shù)據(jù)庫(kù)應(yīng)用:MySQL備份與恢復(fù)

    目錄 一、理論 1.數(shù)據(jù)備份 2.完全備份與恢復(fù) 3.完全備份與恢復(fù)應(yīng)用 4.增量備份與恢復(fù) 5.增量備份與恢復(fù)應(yīng)用 6.使用腳本備份 7.日志管理 二、實(shí)驗(yàn) 1.完全備份與恢復(fù) 2.增量備份與恢復(fù) 3.使用腳本備份 三、問(wèn)題 1.mysqldump報(bào)錯(cuò) 四、總結(jié) (1)重要性 ①? 備份的主要目的是災(zāi)難恢復(fù)

    2024年02月16日
    瀏覽(90)
  • MySQL數(shù)據(jù)庫(kù)的備份與恢復(fù)

    MySQL數(shù)據(jù)庫(kù)的備份與恢復(fù)

    備份的主要目的是災(zāi)難恢復(fù)。 在生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性至關(guān)重要。 任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴(yán)重的后果。 造成數(shù)據(jù)丟失的原因: 程序錯(cuò)誤 人為操作錯(cuò)誤 運(yùn)算錯(cuò)誤 磁盤(pán)故障 災(zāi)難(如火災(zāi)、地震)和盜竊 1)物理備份 物理備份:對(duì)數(shù)據(jù)庫(kù)操作系統(tǒng)的物理文件(如數(shù)據(jù)

    2024年02月04日
    瀏覽(1461)
  • 【數(shù)據(jù)庫(kù)四】MySQL備份與恢復(fù)

    【數(shù)據(jù)庫(kù)四】MySQL備份與恢復(fù)

    數(shù)據(jù)庫(kù)備份 物理備份 :直接對(duì)數(shù)據(jù)庫(kù)的 數(shù)據(jù)文件或者日志文件 進(jìn)行備份. 邏輯備份 :對(duì) 數(shù)據(jù)庫(kù)的庫(kù)或表對(duì)象 進(jìn)行備份. 備份策略 完全備份 :每次備份 都備份完整的數(shù)據(jù)庫(kù) . 是對(duì)整個(gè)數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)結(jié)構(gòu)和文件結(jié)構(gòu)的備份。 保存的是 備份完成時(shí)刻的數(shù)據(jù)庫(kù) 。 是 差異備份與增

    2024年02月11日
    瀏覽(101)
  • Mysql數(shù)據(jù)庫(kù)增量備份與恢復(fù)

    使用 mysqldump 進(jìn)行完全備份,備份的數(shù)據(jù)中有重復(fù)數(shù)據(jù),備份時(shí)間與恢復(fù)時(shí)間長(zhǎng)。 而增量備份就是備份自上一次備份之后增加或改變的文件或內(nèi)容。 1、增量備份的特點(diǎn): 沒(méi)有重復(fù)數(shù)據(jù),備份量不大,時(shí)間短 恢復(fù)麻煩:需要上次完全備份及完全備份之后所有的增量備份才能恢復(fù)

    2024年02月07日
    瀏覽(93)
  • 數(shù)據(jù)庫(kù)(MySQL的備份和恢復(fù))

    目錄 1.1 MySQL 日志管理 1.1.1 MySQL日志類(lèi)型 1.1.2 錯(cuò)誤日志 錯(cuò)誤日志中主要記錄的幾種日志 錯(cuò)誤日志的定義 1.1.3 通用查詢(xún)?nèi)罩?1.1.4 慢查詢(xún)?nèi)罩?和慢查詢(xún)相關(guān)的變量設(shè)置 1.1.5 二進(jìn)制日志 二進(jìn)制日志是記錄執(zhí)行的語(yǔ)句還是執(zhí)行后的數(shù)據(jù) 日志滾動(dòng)? 1.2 MySQL備份 1.2.1 備份類(lèi)型 1.2.2

    2024年01月25日
    瀏覽(134)
  • 【MYSQL】誤刪數(shù)據(jù)恢復(fù)流程說(shuō)明

    【MYSQL】誤刪數(shù)據(jù)恢復(fù)流程說(shuō)明

    誤刪數(shù)據(jù)恢復(fù)流程說(shuō)明 項(xiàng)目場(chǎng)景:使用navicat時(shí),不小心誤刪除幾條數(shù)據(jù),需要對(duì)數(shù)據(jù)進(jìn)行恢復(fù) 第一步:保證mysql已經(jīng)開(kāi)啟binlog,查看命令 : 如果沒(méi)有開(kāi)啟binlog,也沒(méi)有預(yù)先生成回滾SQL,那可能真的無(wú)法快速回滾了。對(duì)存放重要業(yè)務(wù)數(shù)據(jù)的MySQL,強(qiáng)烈建議開(kāi)啟binlog。 查看bi

    2024年02月12日
    瀏覽(23)
  • MySQL找回誤刪的數(shù)據(jù),數(shù)據(jù)恢復(fù)

    原創(chuàng)作品,未經(jīng)同意,請(qǐng)勿轉(zhuǎn)載;允許復(fù)制鏈接,對(duì)原文直接進(jìn)行轉(zhuǎn)發(fā)。 原創(chuàng)作者玉龍有著十幾年大廠軟件開(kāi)發(fā)工作經(jīng)驗(yàn), 目前自由職業(yè), 歡迎業(yè)務(wù)洽談。 誤刪了幾十萬(wàn)條MySQL記錄, 要如何找回物理刪除的數(shù)據(jù)呢?? 查閱各種資料, 被誤導(dǎo)做了些無(wú)效嘗試, 現(xiàn)把成功經(jīng)驗(yàn)

    2024年02月07日
    瀏覽(19)
  • MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫(kù)恢復(fù)

    MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫(kù)恢復(fù)

    本關(guān)任務(wù): 備份數(shù)據(jù)庫(kù),然后再恢復(fù)它。 為了完成本關(guān)任務(wù),你需要掌握: 1.MySQL的恢復(fù)機(jī)制; 2.MySQL提供的備份與恢復(fù)工具。 和大多數(shù)DBMS一樣,MySQL利用備份、日志文件實(shí)現(xiàn)恢復(fù)。 具體理論知識(shí)在此不詳細(xì)介紹。 MySQL提供了以下工具: 邏輯備份工具:mysqldump 物理備份工具

    2024年02月05日
    瀏覽(106)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包