色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 恢復刪除表

李中冰2年前8瀏覽0評論

MySQL 是一種流行的關系型數據庫管理系統,廣泛用于應用程序和網站的后端。在日常使用MySQL時,可能會誤刪數據表,造成數據丟失。當發生這種情況時,可以使用各種方法來恢復被刪除的數據表。

一種常見的方法是通過逆向執行先前執行的 DROP TABLE 命令,將數據表還原回來。但這種方法只有在刪除表時沒有使用 PURGE 參數的情況下才有效,因為 PURGE 參數會將數據表徹底刪除,無法進行恢復。

mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| mytable        |
+----------------+
1 row in set (0.00 sec)
mysql> DROP TABLE mytable;
Query OK, 0 rows affected (0.02 sec)
mysql> SHOW TABLES;
Empty set (0.00 sec)
mysql> PURGE TABLE mytable;
Query OK, 0 rows affected (0.01 sec)
mysql> SHOW TABLES;
Empty set (0.00 sec)

如果您使用 PURGE 參數刪除了數據表,請不要灰心喪氣。你可以嘗試使用 MySQL 的二進制日志(binlog)來恢復被刪除的數據表。被刪除的表及其對應的數據還可以在 binlog 文件中找到,您只需找到對應的 binlog 文件并逐行查找,即可找回被刪除的數據并重新創建數據表。

mysql> FLUSH LOGS;
$ mysqlbinlog /var/lib/mysql/binlog.010 | grep -i 'drop table' | less
# at 931693927
#190105 14:18:28 server id 1  end_log_pos 931693985  Query   thread_id=306784174      exec_time=0     error_code=0
SET TIMESTAMP=1546702708/*!*/;
DROP TABLE `mytable` /* generated by server */
# at 931695049
#190105 14:18:29 server id 1  end_log_pos 931695121  Query   thread_id=306784174      exec_time=0     error_code=0
SET TIMESTAMP=1546702709/*!*/;
CREATE TABLE `mytable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
mysql> mysql -u root -p test < binlog.sql

恢復刪除的 MySQL 數據表有許多方法,具體取決于數據表的刪除方式以及備份使用情況等因素。精細管理您的數據庫,定期備份您的數據可以避免大多數潛在的數據損壞或丟失問題。