這篇文章主要介紹“怎么備份和恢復(fù)MySQL數(shù)據(jù)庫(kù)”,在日常操作中,相信很多人在怎么備份和恢復(fù)MySQL數(shù)據(jù)庫(kù)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么備份和恢復(fù)MySQL數(shù)據(jù)庫(kù)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
創(chuàng)新互聯(lián)公司專(zhuān)注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站建設(shè)、康巴什網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、康巴什網(wǎng)絡(luò)營(yíng)銷(xiāo)、康巴什企業(yè)策劃、康巴什品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供康巴什建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
本教程介紹如何使用mysqldump實(shí)用程序從命令行備份和還原MySQL或MariaDB數(shù)據(jù)庫(kù),mysqldump實(shí)用程序創(chuàng)建的備份文件基本上是一組可用于重新創(chuàng)建原始數(shù)據(jù)庫(kù)的SQL語(yǔ)句,如果不備份數(shù)據(jù)庫(kù),則軟件錯(cuò)誤或硬盤(pán)驅(qū)動(dòng)器故障可能是災(zāi)難性的。為了幫助您節(jié)省大量時(shí)間和挫折,強(qiáng)烈建議您采取預(yù)防措施,定期備份MySQL數(shù)據(jù)庫(kù)。
您還可以使用mysqldump實(shí)用程序?qū)ySQL數(shù)據(jù)庫(kù)傳輸?shù)搅硪粋€(gè)MySQL服務(wù)器。Mysqldump命令語(yǔ)法,在介紹如何使用mysqldump命令之前,讓我們先回顧一下基本語(yǔ)法。mysqldump實(shí)用程序表達(dá)式采用以下形式:
mysqldump [options] > file.sql
options - mysqldump選項(xiàng)
file.sql - 轉(zhuǎn)儲(chǔ)(備份)文件
備份單個(gè)MySQL數(shù)據(jù)庫(kù)
要使用root用戶創(chuàng)建名為database_name的數(shù)據(jù)庫(kù)的備份并將其保存到名為database_name.sql的文件,您將運(yùn)行以下命令:
mysqldump -u root -p database_name > database_name.sql
系統(tǒng)將提示您輸入root密碼。輸入它,按Enter鍵,轉(zhuǎn)儲(chǔ)過(guò)程將開(kāi)始。根據(jù)數(shù)據(jù)庫(kù)大小,該過(guò)程可能需要一些時(shí)間。
如果您以用于執(zhí)行導(dǎo)出的同一用戶身份登錄,并且該用戶不需要密碼,則可以省略-u和-p選項(xiàng):
mysqldump database_name > database_name.sql
備份多個(gè)MySQL數(shù)據(jù)庫(kù)
要使用一個(gè)命令備份多個(gè)MySQL數(shù)據(jù)庫(kù),您需要使用--database選項(xiàng),后跟要備份的數(shù)據(jù)庫(kù)列表。每個(gè)數(shù)據(jù)庫(kù)名稱必須用空格分隔。
mysqldump -u root -p --database database_name_a database_name_b > databases_a_b.sql
上面的命令將創(chuàng)建一個(gè)包含兩個(gè)數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)文件。
備份所有MySQL數(shù)據(jù)庫(kù),要備份所有MySQL數(shù)據(jù)庫(kù),您將使用--all-databases選項(xiàng):
mysqldump -u root -p --all-databases > all_databases.sql
與上一個(gè)示例相同,上面的命令將創(chuàng)建一個(gè)包含所有數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)文件。
將所有MySQL數(shù)據(jù)庫(kù)備份到單獨(dú)的文件
mysqldump實(shí)用程序不提供將所有數(shù)據(jù)庫(kù)備份為單獨(dú)文件的選項(xiàng),但我們可以通過(guò)簡(jiǎn)單的bash FOR循環(huán)輕松實(shí)現(xiàn):
for DB in $(mysql -e 'show databases' -s --skip-column-names); do
mysqldump $DB > "$DB.sql";
done
上面的命令將使用數(shù)據(jù)庫(kù)名稱作為文件名創(chuàng)建所有數(shù)據(jù)庫(kù)的單獨(dú)轉(zhuǎn)儲(chǔ)文件。
創(chuàng)建壓縮的MySQL數(shù)據(jù)庫(kù)備份
如果數(shù)據(jù)庫(kù)大小非常大,則壓縮輸出是個(gè)好主意。為此,只需將輸出管道傳輸?shù)絞zip實(shí)用程序,然后將其重定向到文件,如下所示:
mysqldump database_name > | gzip > database_name.sql.gz
使用時(shí)間戳創(chuàng)建備份
如果要在同一位置保留多個(gè)備份,則需要將日期添加到備份文件名:
mysqldump database_name > database_name-$(date +%Y%m%d).sql
上面的命令將創(chuàng)建一個(gè)具有以下格式的文件database_name-20180617.sql
如果您使用cronjob自動(dòng)執(zhí)行數(shù)據(jù)庫(kù)備份,那么您還可以使用以下命令刪除超過(guò)30天的任何備份:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
當(dāng)然,您需要根據(jù)備份位置和文件名調(diào)整命令。要了解有關(guān)find命令的更多信息,請(qǐng)使用命令行指南檢查我們?nèi)绾卧贚inux中查找文件。
恢復(fù)MySQL轉(zhuǎn)儲(chǔ)
您可以使用mysql工具恢復(fù)MySQL轉(zhuǎn)儲(chǔ)。在大多數(shù)情況下,您需要?jiǎng)?chuàng)建要導(dǎo)入的
數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)已經(jīng)存在,則需要將其刪除。
在以下示例中,第一個(gè)命令將創(chuàng)建名為database_name的數(shù)據(jù)庫(kù),然后將dump database_name.sql導(dǎo)入其中:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
從完整的MySQL轉(zhuǎn)儲(chǔ)還原單個(gè)
MySQL數(shù)據(jù)庫(kù),如果使用-all-databases選項(xiàng)備份所有數(shù)據(jù)庫(kù),并且要從包含多個(gè)數(shù)據(jù)庫(kù)的備份文件還原單個(gè)數(shù)據(jù)庫(kù),請(qǐng)使用--one-database選項(xiàng),如圖所示婁:
mysql --one-database database_name < all_databases.sql
在一個(gè)命令中導(dǎo)出和導(dǎo)入MySQL數(shù)據(jù)庫(kù),而不是從一個(gè)數(shù)據(jù)庫(kù)創(chuàng)建轉(zhuǎn)儲(chǔ)文件,然后將備份導(dǎo)入另一個(gè)MySQL數(shù)據(jù)庫(kù),您可以使用以下單行:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
上面的命令會(huì)將輸出傳遞給
遠(yuǎn)程主機(jī)上的mysql客戶端,并將其導(dǎo)入名為remote_database_name的數(shù)據(jù)庫(kù)中。在運(yùn)行該命令之前,請(qǐng)確保遠(yuǎn)程服務(wù)器上已存在該數(shù)據(jù)庫(kù)。
到此,關(guān)于“怎么備份和恢復(fù)MySQL數(shù)據(jù)庫(kù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!