命令列模式下備份、還原 MySQL 資料庫的語句小結

來源:互聯網
上載者:User

為了安全起見,需要經常對資料庫作備份,或者還原。對於 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的匯出、匯入功能了,但如果你的資料庫體積比較大,作為 Web 應用程式的 phpMyAdmin 可能會遭遇“逾時”而操作失敗。所以,學會在命令列模式下備份、還原資料庫,還是很有必要的。

1、備份資料庫
在 Linux 命令列模式下備份 MySQL 資料庫,用的是 mysqldump 命令:

複製代碼 代碼如下:mysqldump -u mysqluser -p test_db

對以上命令稍作解釋:

•-u 意味著你要指定一個 MySQL 使用者名稱來串連資料庫服務,如上面的 mysqluser 即為 MySQL使用者名稱。
•-p 則意味著你需要有一個有效,與以上使用者名稱對應的密碼。
•最後一個參數則是需要備份的那個資料庫的名稱:test_db

如果直接執行以上命令,緊接著就會提示需要輸入 MySQL 密碼,資料密碼後,它會直接將備份出來的 SQL 指令碼顯示在螢幕上,這當然不是我們想要的結果。我們需要把Database Backup成一個檔案,可用以下命令: 複製代碼 代碼如下:mysqldump -u mysqluser -p test_db > test_db.sql

這樣,就會在目前的目錄下備份出一個名為test_db.sql的檔案。

當然,如果資料庫體積比較大,通常會對備份出來的檔案進行壓縮,備份和壓縮可以在同一行命令內完成: 複製代碼 代碼如下:mysqldump -u mysqluser -p test_db | gzip > test_db.sql.gz

壓縮的時候,最好再給檔案名稱加上副檔名.gz,以便下次還原資料庫的時候心中有數。

2、還原資料庫
還原資料庫的命令也很簡單,如果你備份出來的檔案是未壓縮的版本,則還原資料庫的命令如下: 複製代碼 代碼如下:cat test_db.sql | mysql -u mysqluser -p test_db

用cat命令,把 SQL 指令碼內容輸出給 MySQL 程式以便還原。可以看到,MySQL 後面的幾個參數,跟備份時候的一樣。

如果是已壓縮版本的備份檔案,則需用以下命令才能還原: 複製代碼 代碼如下:gunzip < test_db.sql.gz | mysql -u mysqluser -p test_db

類似地,用gunzip命令,解壓縮,然後把指令碼內容輸出給 MySQL 程式以便還原。

2012-10-08 update:

如不考慮將 .sql 檔案壓縮打包的話,也可以用下面兩條語句分別匯出、匯入。 複製代碼 代碼如下:mysqldump -u root -p test_db > test_db.sql
mysql -u root -p test_db < test_db.sql

備份MySQL資料庫的命令 複製代碼 代碼如下:mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql

備份MySQL資料庫為帶刪除表的格式
備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。 複製代碼 代碼如下:mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql

直接將MySQL資料庫壓縮備份 複製代碼 代碼如下:mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz

備份MySQL資料庫某個(些)表 複製代碼 代碼如下:mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql

同時備份多個MySQL資料庫 複製代碼 代碼如下:mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql

僅僅備份資料庫結構 複製代碼 代碼如下:mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql

備份伺服器上所有資料庫 複製代碼 代碼如下:mysqldump –all-databases > allbackupfile.sql

還原MySQL資料庫的命令 複製代碼 代碼如下:mysql -hhostname -uusername -ppassword databasename < backupfile.sql

還原壓縮的MySQL資料庫 複製代碼 代碼如下:gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

將資料庫轉移到新伺服器 複製代碼 代碼如下:mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.