原來 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/