linux下導(dǎo)入、導(dǎo)出mysql數(shù)據(jù)庫(kù)的命令

一、導(dǎo)出數(shù)據(jù)庫(kù)用mysqldump命令

1.導(dǎo)出數(shù)據(jù)和表結(jié)構(gòu):
mysqldump -u用戶(hù)名 -p(密碼) 數(shù)據(jù)庫(kù)名 > 數(shù)據(jù)庫(kù)名.sql
mysqldump -uroot -p abc > abc.sql

2、只導(dǎo)出表結(jié)構(gòu)
mysqldump -u用戶(hù)名 -p(密碼) -d 數(shù)據(jù)庫(kù)名 > 數(shù)據(jù)庫(kù)名.sql
mysqldump -uroot -p -d abc > abc.sql

二、導(dǎo)入數(shù)據(jù)庫(kù)

1、首先建空數(shù)據(jù)庫(kù):create database abc;

2、導(dǎo)入數(shù)據(jù)庫(kù)
? ?方法一:
use abc;
set names utf8;
source /home/abc/abc.sql;

方法二:
mysql -u用戶(hù)名 -p 密碼 數(shù)據(jù)庫(kù)名 < 數(shù)據(jù)庫(kù)名.sql
mysql -uroot -p abc < abc.sql

2、備份多個(gè)數(shù)據(jù)庫(kù)

  語(yǔ)法:

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

  加上了--databases選項(xiàng),然后后面跟多個(gè)數(shù)據(jù)庫(kù)

mysqldump -u root -p --databases test mysql > D:\backup.sql

  3、備份所有數(shù)據(jù)庫(kù)

  mysqldump命令備份所有數(shù)據(jù)庫(kù)的語(yǔ)法如下:

mysqldump -u username -p -all-databases > BackupName.sql

  示例:

mysqldump -u -root -p -all-databases > D:\all.sql



三、啟用二進(jìn)制日志

4、 啟用二進(jìn)制日志(binlog)

采用?binlog?的方法相對(duì)來(lái)說(shuō)更靈活,省心省力,而且還可以支持增量備份。

啟用?binlog?時(shí)必須要重啟?mysqld。首先,關(guān)閉?mysqld,打開(kāi)?my.cnf,加入以下幾行:

server-id = 1

log-bin = binlog

log-bin-index = binlog.index

然后啟動(dòng)?mysqld?就可以了。運(yùn)行過(guò)程中會(huì)產(chǎn)生?binlog.000001?以及?binlog.index,前面的文件是?mysqld?記錄所有對(duì)數(shù)據(jù)的更新操作,后面的文件則是所有?binlog?的索引,都不能輕易刪除。關(guān)于?binlog?的信息請(qǐng)查看手冊(cè)。

需要備份時(shí),可以先執(zhí)行一下 SQL 語(yǔ)句,讓?mysqld?終止對(duì)當(dāng)前?binlog?的寫(xiě)入,就可以把文件直接備份,這樣的話(huà)就能達(dá)到增量備份的目的了:

FLUSH LOGS;

如果是備份復(fù)制系統(tǒng)中的從服務(wù)器,還應(yīng)該備份?master.info?和?relay-log.info?文件。

備份出來(lái)的?binlog?文件可以用 MySQL 提供的工具?mysqlbinlog?來(lái)查看,如:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001

該工具允許你顯示指定的數(shù)據(jù)庫(kù)下的所有 SQL 語(yǔ)句,并且還可以限定時(shí)間范圍,相當(dāng)?shù)姆奖?,詳?xì)的請(qǐng)查看手冊(cè)。

恢復(fù)時(shí),可以采用類(lèi)似以下語(yǔ)句來(lái)做到:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name

把?mysqlbinlog?輸出的 SQL 語(yǔ)句直接作為輸入來(lái)執(zhí)行它。

如果你有空閑的機(jī)器,不妨采用這種方式來(lái)備份。由于作為?slave?的機(jī)器性能要求相對(duì)不是那么高,因此成本低,用低成本就能實(shí)現(xiàn)增量備份而且還能分擔(dān)一部分?jǐn)?shù)據(jù)查詢(xún)壓力,何樂(lè)而不為呢?

mysqlbinlog恢復(fù)數(shù)據(jù)

mysqlbinlog mysql-bin.000006 > 1.sql

查看1.txt里面數(shù)據(jù)插入的紀(jì)錄,把刪除之前的數(shù)據(jù)進(jìn)行恢復(fù)

mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

重新登錄,查看數(shù)據(jù),OK,已經(jīng)成功恢復(fù)了

/usr/bin/mysqlbinlog binlog.000001 --start-position=1075 --stop-position=1194 | mysql -u root -p mysql

把?mysqlbinlog?輸出的 SQL 語(yǔ)句直接作為輸入來(lái)執(zhí)行它。

如果你有空閑的機(jī)器,不妨采用這種方式來(lái)備份。由于作為?slave?的機(jī)器性能要求相對(duì)不是那么高,因此成本低,用低成本就能實(shí)現(xiàn)增量備份而且還能分擔(dān)一部分?jǐn)?shù)據(jù)查詢(xún)壓力,何樂(lè)而不為呢?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容