共計 2376 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章主要介紹“怎么備份和恢復 MySQL 數據庫”,在日常操作中,相信很多人在怎么備份和恢復 MySQL 數據庫問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么備份和恢復 MySQL 數據庫”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
本教程介紹如何使用 mysqldump 實用程序從命令行備份和還原 MySQL 或 MariaDB 數據庫,mysqldump 實用程序創建的備份文件基本上是一組可用于重新創建原始數據庫的 SQL 語句, 如果不備份數據庫,則軟件錯誤或硬盤驅動器故障可能是災難性的。為了幫助您節省大量時間和挫折,強烈建議您采取預防措施,定期備份 MySQL 數據庫。
您還可以使用 mysqldump 實用程序將 MySQL 數據庫傳輸到另一個 MySQL 服務器。Mysqldump 命令語法, 在介紹如何使用 mysqldump 命令之前,讓我們先回顧一下基本語法。mysqldump 實用程序表達式采用以下形式:
mysqldump [options] file.sql
options – mysqldump 選項
file.sql – 轉儲(備份)文件
備份單個 MySQL 數據庫
要使用 root 用戶創建名為 database_name 的數據庫的備份并將其保存到名為 database_name.sql 的文件,您將運行以下命令:
mysqldump -u root -p database_name database_name.sql
系統將提示您輸入 root 密碼。輸入它,按 Enter 鍵,轉儲過程將開始。根據數據庫大小,該過程可能需要一些時間。
如果您以用于執行導出的同一用戶身份登錄,并且該用戶不需要密碼,則可以省略 - u 和 - p 選項:
mysqldump database_name database_name.sql
備份多個 MySQL 數據庫
要使用一個命令備份多個 MySQL 數據庫,您需要使用 –database 選項,后跟要備份的數據庫列表。每個數據庫名稱必須用空格分隔。
mysqldump -u root -p –database database_name_a database_name_b databases_a_b.sql
上面的命令將創建一個包含兩個數據庫的轉儲文件。
備份所有 MySQL 數據庫, 要備份所有 MySQL 數據庫,您將使用 –all-databases 選項:
mysqldump -u root -p –all-databases all_databases.sql
與上一個示例相同,上面的命令將創建一個包含所有數據庫的轉儲文件。
將所有 MySQL 數據庫備份到單獨的文件
mysqldump 實用程序不提供將所有數據庫備份為單獨文件的選項,但我們可以通過簡單的 bash FOR 循環輕松實現:
for DB in $(mysql -e show databases -s –skip-column-names); do
mysqldump $DB $DB.sql
done
上面的命令將使用數據庫名稱作為文件名創建所有數據庫的單獨轉儲文件。
創建壓縮的 MySQL 數據庫備份
如果數據庫大小非常大,則壓縮輸出是個好主意。為此,只需將輸出管道傳輸到 gzip 實用程序,然后將其重定向到文件,如下所示:
mysqldump database_name | gzip database_name.sql.gz
使用時間戳創建備份
如果要在同一位置保留多個備份,則需要將日期添加到備份文件名:
mysqldump database_name database_name-$(date +%Y%m%d).sql
上面的命令將創建一個具有以下格式的文件 database_name-20180617.sql
如果您使用 cronjob 自動執行數據庫備份,那么您還可以使用以下命令刪除超過 30 天的任何備份:
find /path/to/backups -type f -name *.sql -mtime +30 -delete
當然,您需要根據備份位置和文件名調整命令。要了解有關 find 命令的更多信息,請使用命令行指南檢查我們如何在 Linux 中查找文件。
恢復 MySQL 轉儲
您可以使用 mysql 工具恢復 MySQL 轉儲。在大多數情況下,您需要創建要導入的
數據庫。如果數據庫已經存在,則需要將其刪除。
在以下示例中,第一個命令將創建名為 database_name 的數據庫,然后將 dump database_name.sql 導入其中:
mysql -u root -p -e create database database_name
mysql -u root -p database_name database_name.sql
從完整的 MySQL 轉儲還原單個
MySQL 數據庫, 如果使用 -all-databases 選項備份所有數據庫,并且要從包含多個數據庫的備份文件還原單個數據庫,請使用 –one-database 選項,如圖所示婁:
mysql –one-database database_name all_databases.sql
在一個命令中導出和導入 MySQL 數據庫, 而不是從一個數據庫創建轉儲文件,然后將備份導入另一個 MySQL 數據庫,您可以使用以下單行:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
上面的命令會將輸出傳遞給
遠程主機上的 mysql 客戶端,并將其導入名為 remote_database_name 的數據庫中。在運行該命令之前,請確保遠程服務器上已存在該數據庫。
到此,關于“怎么備份和恢復 MySQL 數據庫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!