欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql刪除表數(shù)據(jù)如何恢復(fù)

 更新時(shí)間:2022年11月09日 16:45:50   作者:黃寶康  
這篇文章主要介紹了mysql刪除表數(shù)據(jù)如何恢復(fù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

實(shí)驗(yàn)?zāi)M

該實(shí)驗(yàn)必須是mysql開(kāi)啟了binlog的情況。

binlog日志,即binary log,是二進(jìn)制日志文件。它有兩個(gè)作用,

  • 一是增量備份,即只備份新增的內(nèi)容;
  • 二是用于主從復(fù)制等,即主節(jié)點(diǎn)維護(hù)了一個(gè)binlog日志文件,從節(jié)點(diǎn)從binlog中同步數(shù)據(jù)。

我們可以通過(guò)binlog日志恢復(fù)數(shù)據(jù)

查看mysql是否開(kāi)啟binlog語(yǔ)句

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin ? ? ? | OFF ? |
+---------------+-------+
1 row in set (0.01 sec)

如果是OFF,則說(shuō)明沒(méi)有開(kāi)啟binlog??梢允褂萌缦路椒ㄩ_(kāi)啟binlog

編輯/etc/my.cnf文件,在文件后面增加如下兩行代碼即可

server-id=1
log-bin=/var/lib/mysql/mysql-bin

server-id表示單個(gè)結(jié)點(diǎn)的id,這里由于只有一個(gè)結(jié)點(diǎn),所以可以把id隨機(jī)指定為一個(gè)數(shù),這里將id設(shè)置成1。若集群中有多個(gè)結(jié)點(diǎn),則id不能相同

第二句是指定binlog日志文件的名字為mysql-bin,以及其存儲(chǔ)路徑

重啟讓配置生效。

[root@localhost ~]# systemctl stop mysqld.service
[root@localhost ~]# systemctl start mysqld.service
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin ? ? ? | ON ? ?|
+---------------+-------+
1 row in set (0.01 sec)

創(chuàng)建數(shù)據(jù)庫(kù),即相關(guān)表

CREATE DATABASE `hbk` ?DEFAULT CHARACTER SET utf8 ;
use hbk;
CREATE TABLE `t_delete_test` (
? `id` int(11) NOT NULL,
? `name` varchar(30) DEFAULT NULL,
? PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

插入相關(guān)測(cè)試數(shù)據(jù),在這里,我使用客戶(hù)端工具插入的,也可以使用手工執(zhí)行insert into語(yǔ)句。

模擬數(shù)據(jù)庫(kù)誤刪除操作,把id從1-4的數(shù)據(jù)不小心刪除,只留唐僧師徒4人,然后如何恢復(fù)所有數(shù)據(jù)。

mysql> delete from t_delete_test where id<=4;
Query OK, 4 rows affected (0.01 sec)

mysql> commit;
Query OK, 0 rows affected (0.00 sec)

恢復(fù)實(shí)戰(zhàn)

由于在/etc/my.cnf配置了binlog,這個(gè)日志會(huì)存儲(chǔ)插入,刪除,修改的日志信息

mysql > show binlog events in 'mysql-bin.000001'\G

在3101的時(shí)刻進(jìn)行了delete操作,從704建表之后的操作開(kāi)始恢復(fù)

[root@localhost mysql]# /usr/bin/mysqlbinlog ?/var/lib/mysql/mysql-bin.000001 --start-position=704 --stop-position=3101 |mysql -uroot -p hbk?

執(zhí)行之后,成功恢復(fù)了之前刪除的數(shù)據(jù)。

常用參數(shù)選項(xiàng)解釋

  • --start-position=875 起始pos點(diǎn)
  • --stop-position=954 結(jié)束pos點(diǎn)
  • --start-datetime="2016-9-25 22:01:08" 起始時(shí)間點(diǎn)
  • --stop-datetime="2019-9-25 22:09:46" 結(jié)束時(shí)間點(diǎn)
  • --database=zyyshop 指定只恢復(fù)zyyshop數(shù)據(jù)庫(kù)(一臺(tái)主機(jī)上往往有多個(gè)數(shù)據(jù)庫(kù),只限本地log日志)

不常用選項(xiàng) 

  • -u --user=name 連接到遠(yuǎn)程主機(jī)的用戶(hù)名
  • -p --password[=name] 連接到遠(yuǎn)程主機(jī)的密碼
  • -h --host=name 從遠(yuǎn)程主機(jī)上獲取binlog日志
  • --read-from-remote-server 從某個(gè)MySQL服務(wù)器上讀取binlog日志

a)查詢(xún)第一個(gè)(最早)的binlog日志:

mysql> show binlog events\G;

b)指定查詢(xún) mysql-bin.000002這個(gè)文件:

mysql> show binlog events in 'mysql-bin.000002'\G;

c)指定查詢(xún) mysql-bin.000002這個(gè)文件,從pos點(diǎn):624開(kāi)始查起:

mysql> show binlog events in 'mysql-bin.000002' from 624\G;

d)指定查詢(xún) mysql-bin.000002這個(gè)文件,從pos點(diǎn):624開(kāi)始查起,查詢(xún)10條(即10條語(yǔ)句)

mysql> show binlog events in 'mysql-bin.000002' from 624 limit 10\G;

e)指定查詢(xún) mysql-bin.000002這個(gè)文件,從pos點(diǎn):624開(kāi)始查起,偏移2行(即中間跳過(guò)2個(gè)),查詢(xún)10條

mysql> show binlog events in 'mysql-bin.000002' from 624 limit 2,10\G;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL系列數(shù)據(jù)庫(kù)設(shè)計(jì)三范式教程示例

    MySQL系列數(shù)據(jù)庫(kù)設(shè)計(jì)三范式教程示例

    這篇文章主要為大家介紹了MySQL系列之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)三范式的教程示例講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • 解決mysql報(bào)錯(cuò)ERROR 1049 (42000): Unknown database ‘?dāng)?shù)據(jù)庫(kù)‘的問(wèn)題

    解決mysql報(bào)錯(cuò)ERROR 1049 (42000): Unknown dat

    對(duì)于錯(cuò)誤代碼1049(42000):Unknown database ‘?dāng)?shù)據(jù)庫(kù)‘,這個(gè)錯(cuò)誤通常表示您正在嘗試訪問(wèn)一個(gè)不存在的數(shù)據(jù)庫(kù),本文給出了解決方法,您可以按照文中步驟進(jìn)行操作,需要的朋友可以參考下
    2024-01-01
  • 區(qū)別于Oracle的MySQL?insert會(huì)阻塞update

    區(qū)別于Oracle的MySQL?insert會(huì)阻塞update

    這篇文章主要介紹了區(qū)別于Oracle的MySQL?insert會(huì)阻塞update的問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • MySQL中使用binlog時(shí)格式該如何選擇

    MySQL中使用binlog時(shí)格式該如何選擇

    這篇文章主要給大家介紹了關(guān)于MySQL中使用binlog時(shí)格式該如何選擇的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MySQL內(nèi)部臨時(shí)表的具體使用

    MySQL內(nèi)部臨時(shí)表的具體使用

    MySQL臨時(shí)表在很多場(chǎng)景中都會(huì)用到,比如用戶(hù)自己創(chuàng)建的臨時(shí)表用于保存臨時(shí)數(shù)據(jù),以及MySQL內(nèi)部在執(zhí)行復(fù)雜SQL時(shí),需要借助臨時(shí)表進(jìn)行分組、排序、去重等操作,本文就來(lái)詳細(xì)的介紹一下MySQL內(nèi)部臨時(shí)表
    2021-10-10
  • MySQL必備的常見(jiàn)知識(shí)點(diǎn)匯總整理

    MySQL必備的常見(jiàn)知識(shí)點(diǎn)匯總整理

    這篇文章主要介紹了MySQL必備的常見(jiàn)知識(shí)點(diǎn),結(jié)合實(shí)例形式匯總整理了mysql各種常見(jiàn)知識(shí)點(diǎn),包括登錄、退出、創(chuàng)建、增刪改查、事務(wù)等知識(shí)點(diǎn)與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • mysql odbc字符集設(shè)置(中文顯示亂碼)

    mysql odbc字符集設(shè)置(中文顯示亂碼)

    mysql odbc字符集設(shè)置(中文顯示亂碼),碰到這個(gè)問(wèn)題的朋友可以參考下。
    2011-08-08
  • CentOS7環(huán)境下MySQL8常用命令小結(jié)

    CentOS7環(huán)境下MySQL8常用命令小結(jié)

    在進(jìn)行MySQL的優(yōu)化之前必須要了解的就是MySQL的查詢(xún)過(guò)程,下面這篇文章主要給大家介紹了關(guān)于CentOS7環(huán)境下MySQL8常用命令的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 詳解MySQL實(shí)時(shí)同步到Oracle解決方案

    詳解MySQL實(shí)時(shí)同步到Oracle解決方案

    這篇文章主要介紹了詳解MySQL實(shí)時(shí)同步到Oracle解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • MySQL使用Partition功能實(shí)現(xiàn)水平分區(qū)的策略

    MySQL使用Partition功能實(shí)現(xiàn)水平分區(qū)的策略

    這篇文章主要介紹了MySQL使用Partition功能實(shí)現(xiàn)水平分區(qū),給大家提到了水平分區(qū)的5種策略,通過(guò)sql語(yǔ)句給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12

最新評(píng)論