Mysql備份與還原資料庫

原來 mysql 的備份還有還原這麼簡單 @_@;

備份:

— 備份某個資料庫

mysqldump -u root -p db_name > backup.sql;

— 備份所有資料庫

mysqldump -u root -p --all-databases > backup.sql;

附註:備所有資料庫,遇到 database 版本不同時,會有問題,例如 mysql 5.6 到 5.7 會造成系統預設的欄位長度不符的錯誤。

備份用的 shell script:

#!/bin/sh 
pw='your-password'
mysqldump --all-databases --add-drop-table -h 127.0.0.1 -u root -p$pw > your-backup-file.sql
bzip2 -f your-backup-file.sql

bz2 壓縮:

bzip2 -z FileName

bz2 解壓縮:
bzip2 -d FileName.bz2


還原:

mysql -u root -p < backup.sql

如果出現 no database selected 是因為 backup.sql 裡沒有包括了 create database 的指令,只有去 drop table. 所以要在一還原的地方指定好要被貼回來的 database name:

mysql DATABASE_NAME -u root -p < backup.sql

進階一點的備份:

MySQL 自動備份 Shell Script
https://stackoverflow.max-everyday.com/2018/01/mysql-shell-script/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *