命令行模式下備份、還原 MySQL 數(shù)據(jù)庫的語句小結(jié)
更新時間:2012年11月11日 19:14:34 作者:
為了安全起見,需要經(jīng)常對數(shù)據(jù)庫作備份,或者還原,學(xué)會在命令行模式下備份、還原數(shù)據(jù)庫,還是很有必要
為了安全起見,需要經(jīng)常對數(shù)據(jù)庫作備份,或者還原。對于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的導(dǎo)出、導(dǎo)入功能了,但如果你的數(shù)據(jù)庫體積比較大,作為 Web 應(yīng)用的 phpMyAdmin 可能會遭遇“超時”而操作失敗。所以,學(xué)會在命令行模式下備份、還原數(shù)據(jù)庫,還是很有必要的。
1、備份數(shù)據(jù)庫
在 Linux 命令行模式下備份 MySQL 數(shù)據(jù)庫,用的是 mysqldump 命令:
mysqldump -u mysqluser -p test_db
對以上命令稍作解釋:
•-u 意味著你要指定一個 MySQL 用戶名來連接數(shù)據(jù)庫服務(wù),如上面的 mysqluser 即為 MySQL用戶名。
•-p 則意味著你需要有一個有效的,與以上用戶名對應(yīng)的密碼。
•最后一個參數(shù)則是需要備份的那個數(shù)據(jù)庫的名稱:test_db
如果直接執(zhí)行以上命令,緊接著就會提示需要輸入 MySQL 密碼,數(shù)據(jù)密碼后,它會直接將備份出來的 SQL 腳本顯示在屏幕上,這當(dāng)然不是我們想要的結(jié)果。我們需要把數(shù)據(jù)庫備份成一個文件,可用以下命令:
mysqldump -u mysqluser -p test_db > test_db.sql
這樣,就會在當(dāng)前目錄下備份出一個名為test_db.sql的文件。
當(dāng)然,如果數(shù)據(jù)庫體積比較大,通常會對備份出來的文件進行壓縮,備份和壓縮可以在同一行命令內(nèi)完成:
mysqldump -u mysqluser -p test_db | gzip > test_db.sql.gz
壓縮的時候,最好再給文件名加上擴展名.gz,以便下次還原數(shù)據(jù)庫的時候心中有數(shù)。
2、還原數(shù)據(jù)庫
還原數(shù)據(jù)庫的命令也很簡單,如果你備份出來的文件是未壓縮的版本,則還原數(shù)據(jù)庫的命令如下:
cat test_db.sql | mysql -u mysqluser -p test_db
用cat命令,把 SQL 腳本內(nèi)容輸出給 MySQL 程序以便還原??梢钥吹剑琈ySQL 后面的幾個參數(shù),跟備份時候的一樣。
如果是已壓縮版本的備份文件,則需用以下命令才能還原:
gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db
類似地,用gunzip命令,解壓縮,然后把腳本內(nèi)容輸出給 MySQL 程序以便還原。
2012-10-08 update:
如不考慮將 .sql 文件壓縮打包的話,也可以用下面兩條語句分別導(dǎo)出、導(dǎo)入。
mysqldump -u root -p test_db > test_db.sql
mysql -u root -p test_db < test_db.sql
備份MySQL數(shù)據(jù)庫的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
備份MySQL數(shù)據(jù)庫為帶刪除表的格式
備份MySQL數(shù)據(jù)庫為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫而不需要手動刪除原有數(shù)據(jù)庫。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接將MySQL數(shù)據(jù)庫壓縮備份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
備份MySQL數(shù)據(jù)庫某個(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同時備份多個MySQL數(shù)據(jù)庫
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
僅僅備份數(shù)據(jù)庫結(jié)構(gòu)
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
備份服務(wù)器上所有數(shù)據(jù)庫
mysqldump –all-databases > allbackupfile.sql
還原MySQL數(shù)據(jù)庫的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
還原壓縮的MySQL數(shù)據(jù)庫
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
將數(shù)據(jù)庫轉(zhuǎn)移到新服務(wù)器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
1、備份數(shù)據(jù)庫
在 Linux 命令行模式下備份 MySQL 數(shù)據(jù)庫,用的是 mysqldump 命令:
復(fù)制代碼 代碼如下:
mysqldump -u mysqluser -p test_db
對以上命令稍作解釋:
•-u 意味著你要指定一個 MySQL 用戶名來連接數(shù)據(jù)庫服務(wù),如上面的 mysqluser 即為 MySQL用戶名。
•-p 則意味著你需要有一個有效的,與以上用戶名對應(yīng)的密碼。
•最后一個參數(shù)則是需要備份的那個數(shù)據(jù)庫的名稱:test_db
如果直接執(zhí)行以上命令,緊接著就會提示需要輸入 MySQL 密碼,數(shù)據(jù)密碼后,它會直接將備份出來的 SQL 腳本顯示在屏幕上,這當(dāng)然不是我們想要的結(jié)果。我們需要把數(shù)據(jù)庫備份成一個文件,可用以下命令:
復(fù)制代碼 代碼如下:
mysqldump -u mysqluser -p test_db > test_db.sql
這樣,就會在當(dāng)前目錄下備份出一個名為test_db.sql的文件。
當(dāng)然,如果數(shù)據(jù)庫體積比較大,通常會對備份出來的文件進行壓縮,備份和壓縮可以在同一行命令內(nèi)完成:
復(fù)制代碼 代碼如下:
mysqldump -u mysqluser -p test_db | gzip > test_db.sql.gz
壓縮的時候,最好再給文件名加上擴展名.gz,以便下次還原數(shù)據(jù)庫的時候心中有數(shù)。
2、還原數(shù)據(jù)庫
還原數(shù)據(jù)庫的命令也很簡單,如果你備份出來的文件是未壓縮的版本,則還原數(shù)據(jù)庫的命令如下:
復(fù)制代碼 代碼如下:
cat test_db.sql | mysql -u mysqluser -p test_db
用cat命令,把 SQL 腳本內(nèi)容輸出給 MySQL 程序以便還原??梢钥吹剑琈ySQL 后面的幾個參數(shù),跟備份時候的一樣。
如果是已壓縮版本的備份文件,則需用以下命令才能還原:
復(fù)制代碼 代碼如下:
gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db
類似地,用gunzip命令,解壓縮,然后把腳本內(nèi)容輸出給 MySQL 程序以便還原。
2012-10-08 update:
如不考慮將 .sql 文件壓縮打包的話,也可以用下面兩條語句分別導(dǎo)出、導(dǎo)入。
復(fù)制代碼 代碼如下:
mysqldump -u root -p test_db > test_db.sql
mysql -u root -p test_db < test_db.sql
備份MySQL數(shù)據(jù)庫的命令
復(fù)制代碼 代碼如下:
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
備份MySQL數(shù)據(jù)庫為帶刪除表的格式
備份MySQL數(shù)據(jù)庫為帶刪除表的格式,能夠讓該備份覆蓋已有數(shù)據(jù)庫而不需要手動刪除原有數(shù)據(jù)庫。
復(fù)制代碼 代碼如下:
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接將MySQL數(shù)據(jù)庫壓縮備份
復(fù)制代碼 代碼如下:
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
備份MySQL數(shù)據(jù)庫某個(些)表
復(fù)制代碼 代碼如下:
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同時備份多個MySQL數(shù)據(jù)庫
復(fù)制代碼 代碼如下:
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
僅僅備份數(shù)據(jù)庫結(jié)構(gòu)
復(fù)制代碼 代碼如下:
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
備份服務(wù)器上所有數(shù)據(jù)庫
復(fù)制代碼 代碼如下:
mysqldump –all-databases > allbackupfile.sql
還原MySQL數(shù)據(jù)庫的命令
復(fù)制代碼 代碼如下:
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
還原壓縮的MySQL數(shù)據(jù)庫
復(fù)制代碼 代碼如下:
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
將數(shù)據(jù)庫轉(zhuǎn)移到新服務(wù)器
復(fù)制代碼 代碼如下:
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
相關(guān)文章
Windows10下mysql 8.0.12 解壓版安裝圖文教程
這篇文章主要為大家詳細(xì)介紹了Windows10下mysql 8.0.12 解壓版安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09MySQL?去除字符串中的括號以及括號里的所有內(nèi)容
這篇文章主要介紹了MySQL?去除字符串中的括號以及括號里的所有內(nèi)容,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08Navicat出現(xiàn)無法遠程連接MySql服務(wù)器問題的解決辦法
這篇文章主要介紹了Navicat出現(xiàn)無法遠程連接MySql服務(wù)器問題的解決辦法,文章通過思路判斷出現(xiàn)問題的情況,然后進行逐一排查,確定問題出現(xiàn)的原因并給出解決辦法,本文對此問題的解決介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08MySQL中dd::columns表結(jié)構(gòu)轉(zhuǎn)table過程及應(yīng)用詳解
MySQL的dd表是用來存放表結(jié)構(gòu)和各種建表信息的,客戶端建的表都存在mysql.table和mysql.columns表里,還有一個表mysql.column_type_elements比較特殊,用來存放SET和ENUM類型的字段集合值信息,對mysql dd::columns表結(jié)構(gòu)相關(guān)知識感興趣的朋友一起看看吧2022-09-09Linux centos7環(huán)境下MySQL安裝教程
這篇文章主要為大家詳細(xì)介紹了Linux centos7環(huán)境下MySQL安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03mysql使用from與join兩表查詢的區(qū)別總結(jié)
這篇文章主要給大家介紹了關(guān)于mysql使用from與join兩表查詢的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12