mysql遇到不小心誤刪表怎么辦

這篇文章主要介紹了MySQL遇到不小心誤刪表怎么辦,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站專注于君山企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城開(kāi)發(fā)。君山網(wǎng)站建設(shè)公司,為君山等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

測(cè)試環(huán)境:

5.6.33 和 centos6.5

源碼安裝庫(kù)一:

yum install "@development tools" cmake ncurses-devel

yum install make gcc-c++ cmake bison-devel  ncurses-devel

Wget http://101.110.118.23/dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33.tar.gz

解壓

tar xf mysql-5.6.33.tar.gz

編譯

Cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql/data

make

make install

授權(quán)

Chown mysql:mysql /usr/local/mysql -R

Chown mysql:mysql /data/mysql/data -R

建立配置文件

[root@localhost data]# vim /etc/my.cnf

[client]

port=3306

socket=/var/lib/mysql/mysql.sock

default-character-set = utf8

[mysqld]

port=3306

basedir=/usr/local/mysql

datadir=/data/mysql/data

socket=/var/lib/mysql/mysql.sock

user=mysql

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

初始化

/usr/local/mysql/scripts/mysql_install_db  --basedir=-/usr/local/mysql -user=mysql --ldata=/data/mysql/data

也可以寫(xiě)成

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf

啟動(dòng):

/usr/local/mysql/bin/mysqld_safe  --defaults-file=/etc/my.cnf

進(jìn)庫(kù)建立測(cè)試庫(kù)文件

1.修改/etc/my.cnf  添加開(kāi)啟的二進(jìn)制日志

log-bin=logbin          

2重啟服務(wù)

3.建庫(kù)

create database test default character set utf8;

4.建表

create table a (id int(4),name char(10)) engine=innodb;

5.插入數(shù)據(jù)

insert into a values(1,“t”)    插入N條。

6.刪除

delete from emp;

7.啟動(dòng)第二個(gè)庫(kù)

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/myserver.cnf

8.查看binlog找到恢復(fù)點(diǎn)

在恢復(fù)過(guò)程中會(huì)出現(xiàn)./bin/mysqlbinlog: unknown variable 'default-character-set=utf8' 錯(cuò)誤。

只要把配置文件中的注釋掉,不用重啟,因?yàn)榇藭r(shí)mysqlbinlog會(huì)二次調(diào)用配置文件 用完之后還原就好了。

/usr/local/mysql/bin/mysqlbinlog logbin.000002 >test2.log

less test2.log

mysql遇到不小心誤刪表怎么辦

9.恢復(fù)到第二個(gè)庫(kù)中

/usr/local/mysql3308/bin/mysqlbinlog /data/mysql/data/logbin.000002 --stop-position=735 |/usr/local/mysql3308/bin/mysql -uroot -h227.0.0.1

上面發(fā)現(xiàn)恢復(fù)過(guò)來(lái)少了一條語(yǔ)句 沒(méi)關(guān)系 采用下面

/usr/local/mysql3308/bin/mysqlbinlog /data/mysql/data/logbin.000002 --start-position=735 --stop-position=868 |/usr/local/mysql3308/bin/mysql -uroot -h227.0.0.1

上面注意了:恢復(fù)到點(diǎn)735 以及837是會(huì)丟失第三條4,t 的數(shù)據(jù)的 所以指定到刪除操作的點(diǎn)上面868.

直接恢復(fù)

./bin/mysqlbinlog /data/mysql/data/logbin.000002  --stop-position=868 |/usr/local/mysql3308/bin/mysql -uroot -h227.0.0.1  -P3308

10.恢復(fù)到主庫(kù):

1、直接恢復(fù)

/usr/local/mysql/bin/mysqlbinlog --stop-position=868|/usr/local/mysql/bin/mysql -uroot -h227.0.0.1

2、把恢復(fù)的表單復(fù)制到相應(yīng)的庫(kù)文件下

未做

3、把恢復(fù)好的庫(kù)導(dǎo)出,再?gòu)?fù)制重命名原來(lái)的庫(kù) ,恢復(fù)好的庫(kù)導(dǎo)入之后再刪之前那的已誤操作的庫(kù)

導(dǎo)出表

/usr/local/mysql3308/bin/mysqldump -h227.0.0.1 -uroot -P3308 test a --default-character-set=utf8  >a.sql

原表復(fù)制 ---可能會(huì)很大 建議原表rename

create table a_bak as select * from a;

原表rename

rename table  a to b;

導(dǎo)入表

/usr/local/mysql/bin/mysql -uroot -h227.0.0.1  <a.sql</a.sql<>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“mysql遇到不小心誤刪表怎么辦”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

分享標(biāo)題:mysql遇到不小心誤刪表怎么辦
網(wǎng)頁(yè)URL:http://muchs.cn/article32/jpjopc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、云服務(wù)器、微信公眾號(hào)、定制網(wǎng)站自適應(yīng)網(wǎng)站、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)