亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql恢復(fù)誤刪庫表數(shù)據(jù)完整場景演示

 更新時(shí)間:2024年07月10日 11:09:07   作者:快樂的小三菊  
在開發(fā)和在生產(chǎn)中總會(huì)出現(xiàn)各種各樣的失誤和意味,當(dāng)MySQL的數(shù)據(jù)或表被刪除后不要慌,下面這篇文章主要給大家介紹了關(guān)于Mysql恢復(fù)誤刪庫表數(shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、前提

1、如果你的數(shù)據(jù)庫有備份文件,自己還原即可。

2、如果沒有備份文件,那首先檢查下你的 binlog 是否開啟。如果未開啟,那你就不用往下看了。如果開啟了,可以往下看看。

1.1 查看位置

可以通過以下的命令查看是否開啟了 binlog 以及它的存儲(chǔ)路徑,mysql8.0 版本是默認(rèn)開啟的。

show variables like '%log_bin%'

二、簡單場景演示

2.1 背景

此時(shí)演示的數(shù)據(jù)庫版本是 Mysql 8.0。且創(chuàng)建表、插入數(shù)據(jù)和刪除表都是在一個(gè) binlog 里面完成的。

2.2 創(chuàng)建數(shù)據(jù)庫

確認(rèn) binlog 是開啟狀態(tài)之后,創(chuàng)建測試數(shù)據(jù)庫,在測試數(shù)據(jù)庫中創(chuàng)建測試表,并寫入數(shù)據(jù),腳本如下:

create database if EXISTS itcast;

use itcast;

create table tb_user(
	id int(11) not null,
	name varchar(50) not null,
	sex varchar(1),
	primary key (id)
)engine=innodb default charset=utf8;

insert into tb_user(id,name,sex) values(1,'Tom','1');
insert into tb_user(id,name,sex) values(2,'Trigger','0');
insert into tb_user(id,name,sex) values(3,'Dawn','1');

2.3 刪除數(shù)據(jù)庫

執(zhí)行下面的語句將數(shù)據(jù)庫刪除掉。

drop DATABASE itcast;

2.4 創(chuàng)建新文件

當(dāng)需要恢復(fù)數(shù)據(jù)時(shí),為了防止恢復(fù)數(shù)據(jù)后影響最新業(yè)務(wù),需要執(zhí)行下面的命令產(chǎn)生一個(gè)新的 binlog 文件,如下,此時(shí)舊的 binlog 文件不會(huì)再有寫入操作了。

flush logs;

2.5 查看具體文件

執(zhí)行下面的命令,看下系統(tǒng)有多少個(gè) binlog 文件

show master logs;

由于我們執(zhí)行 flush logs 命令新生了一個(gè)文件,所以我們執(zhí)行的刪除的命令應(yīng)該在 binlog.000017 文件里面。

2.6 查看具體的命令行

 執(zhí)行下面的命令,查看具體操作的開始和結(jié)束的位置

show binlog events in 'binlog.000017';

得到數(shù)據(jù)恢復(fù)的起始位置為 125,結(jié)束位置為 1750,

2.7 mysqlbinlog

接下來使用 mysqlbinlog 命令執(zhí)行 binlog 文件,恢復(fù)數(shù)據(jù),命令如下:

mysqlbinlog -v /var/lib/mysql/binlog.000017 --start-position=125 --stop-position=1750 | mysql -uroot -p1234

數(shù)據(jù)就被恢復(fù)成功了。

三、復(fù)雜場景演示

先通過下面的命令查看下 binlog 是否開啟,以及日志存儲(chǔ)的位置

show variables like '%log_bin%'

3.1 背景

        1、此時(shí)演示的數(shù)據(jù)庫版本是 Mysql 8.0

        2、創(chuàng)建表、插入數(shù)據(jù)和刪除表不是在一個(gè) binlog 里面完成的。

        3、binlog 里面存儲(chǔ)了不止一個(gè)數(shù)據(jù)庫的日志。

3.2 現(xiàn)狀

此時(shí)我們有一個(gè)庫,里面有三張表,如下,具體什么時(shí)候創(chuàng)建的,不記得了,現(xiàn)在我們把他刪除掉,看看能不能給還原回去。

3.3 刪除數(shù)據(jù)庫

執(zhí)行下面的語句將數(shù)據(jù)庫刪除掉。

drop DATABASE itcast;

3.4 數(shù)據(jù)復(fù)原

1、執(zhí)行 flush logs 命令,使其產(chǎn)生一個(gè)新的 binlog 文件

2、執(zhí)行下面的命令,看下系統(tǒng)有多少個(gè) binlog 文件。

show master logs;

3、挨個(gè)遍歷,執(zhí)行下面的命令,挨個(gè) binlog 日志去查看

show binlog events in 'DESKTOP-B0B82CP-bin.000001';
show binlog events in 'DESKTOP-B0B82CP-bin.000002';
show binlog events in 'DESKTOP-B0B82CP-bin.000003';
show binlog events in 'DESKTOP-B0B82CP-bin.000004';
show binlog events in 'DESKTOP-B0B82CP-bin.000005';
show binlog events in 'DESKTOP-B0B82CP-bin.000006';
show binlog events in 'DESKTOP-B0B82CP-bin.000007';

1、發(fā)現(xiàn)第一個(gè)有關(guān)于 itcast 的日志位置,如下

把涉及到的這幾個(gè) binlog 日志都拷貝到另外的文件夾里面去,因?yàn)?strong> MySQL Server 8.0 這個(gè)目錄識(shí)別不了,真坑爹。 

拷貝完成后,執(zhí)行下面的語句:

mysqlbinlog -v C:/1/DESKTOP-B0B82CP-bin.000003 --start-position=424 --stop-position=543 | mysql -uroot -p123456

執(zhí)行成功后,可以看到,數(shù)據(jù)庫被恢復(fù)成功了,不過現(xiàn)在只是個(gè)空庫,如下圖:

2、繼續(xù)向下搜尋有關(guān) itcast 的 binlog 日志,如下圖,又在 binlog 里面發(fā)現(xiàn)了有關(guān) itcast 的日志,

mysqlbinlog -v C:/1/DESKTOP-B0B82CP-bin.000005 --start-position=125 --stop-position=9655 | mysql -uroot -p123456

繼續(xù)找,繼續(xù)還原。 

mysqlbinlog -v C:/1/DESKTOP-B0B82CP-bin.000005 --start-position=11607 --stop-position=12344 | mysql -uroot -p123456

繼續(xù)找,繼續(xù)還原。

mysqlbinlog -v C:/1/DESKTOP-B0B82CP-bin.000005 --start-position=14152 --stop-position=14742 | mysql -uroot -p123456

到此為止,就都找全了,數(shù)據(jù)也都恢復(fù)回來了。

總結(jié) 

到此這篇關(guān)于Mysql恢復(fù)誤刪庫表數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Mysql恢復(fù)誤刪庫表數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL提取Json內(nèi)部字段轉(zhuǎn)儲(chǔ)為數(shù)字

    MySQL提取Json內(nèi)部字段轉(zhuǎn)儲(chǔ)為數(shù)字

    本文主要介紹了MySQL提取Json內(nèi)部字段轉(zhuǎn)儲(chǔ)為數(shù)字,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • MySQL 觸發(fā)器定義與用法簡單實(shí)例

    MySQL 觸發(fā)器定義與用法簡單實(shí)例

    這篇文章主要介紹了MySQL 觸發(fā)器定義與用法,結(jié)合簡單實(shí)例形式總結(jié)分析了mysql觸發(fā)器的語法、原理、定義及使用方法,需要的朋友可以參考下
    2019-09-09
  • mysql 常用命令用法總結(jié)腳本之家整理版

    mysql 常用命令用法總結(jié)腳本之家整理版

    在日常工作中,會(huì)簡單的使用一下mysql,故對(duì)常見命令操作總結(jié)一下,常用方式如下
    2010-02-02
  • MySQL中查看表結(jié)構(gòu)的四種實(shí)現(xiàn)

    MySQL中查看表結(jié)構(gòu)的四種實(shí)現(xiàn)

    本文主要介紹了MySQL中查看表結(jié)構(gòu)的四種實(shí)現(xiàn),包含DESCRIBE/DESC、SHOW COLUMNS、SHOW CREATE TABLE和INFORMATION_SCHEMA,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • 解決MySQL 5.7中定位DDL被阻塞的問題

    解決MySQL 5.7中定位DDL被阻塞的問題

    這篇文章主要介紹了MySQL 5.7中如何定位DDL被阻塞的問題,在MySQL 5.7中,針對(duì)MDL,引入了一張新表performance_schema.metadata_locks,該表可對(duì)外展示MDL的相關(guān)信息,包括其作用對(duì)象,類型及持有等待情況。對(duì)此問題感興趣的朋友參考下本文
    2018-08-08
  • mysql如何利用binlog進(jìn)行數(shù)據(jù)恢復(fù)詳解

    mysql如何利用binlog進(jìn)行數(shù)據(jù)恢復(fù)詳解

    MySQL的binlog日志是MySQL日志中非常重要的一種日志,下面這篇文章主要給大家介紹了關(guān)于mysql如何利用binlog進(jìn)行數(shù)據(jù)恢復(fù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10
  • 提高SQL代碼可讀性的10種技巧

    提高SQL代碼可讀性的10種技巧

    SQL,這門備受推崇的編程語言,在關(guān)系數(shù)據(jù)庫操作中扮演著不可或缺的角色,然而,伴隨著數(shù)據(jù)庫模式的不斷增長和不斷演進(jìn),編寫和維護(hù)SQL代碼可能會(huì)變得相當(dāng)具有挑戰(zhàn)性,為了確保你的SQL代碼能夠具備高可讀性、易維護(hù)性以及出色的性能,以下是十個(gè)不容忽視的最佳實(shí)踐
    2023-10-10
  • MySQL數(shù)據(jù)庫中Interval關(guān)鍵字的使用看這一篇就夠了

    MySQL數(shù)據(jù)庫中Interval關(guān)鍵字的使用看這一篇就夠了

    這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫中Interval關(guān)鍵字使用的相關(guān)資料,interval作為一個(gè)關(guān)鍵字時(shí),表示為時(shí)間間隔,常用在date_add()、date_sub()、subdate(),函數(shù)中,常用于時(shí)間的加減法,需要的朋友可以參考下
    2024-08-08
  • Mysql關(guān)聯(lián)查詢的幾種實(shí)現(xiàn)方式

    Mysql關(guān)聯(lián)查詢的幾種實(shí)現(xiàn)方式

    這篇文章主要介紹了Mysql關(guān)聯(lián)查詢的幾種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • MySQL中or、in、union與索引優(yōu)化詳析

    MySQL中or、in、union與索引優(yōu)化詳析

    這篇文章主要給大家介紹了關(guān)于MySQL中or、in、union與索引優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論