[MySQL] 簡易備份指令, 新增docker相關
Ref: https://hub.docker.com/_/mysql/
如果是使用 docker
假如建立 mysql 的指令是使用
docker run --name mysql2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=自己建立的密碼 -v /data/db:/var/lib/mysql -d mysql
備份的話可以使用
docker exec mysql2 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /path/to/backup.sql
#!/bin/bash MYSQL_CONTAINER='mysql2' SAVE_DIR='/root/looker_video_backup' /usr/bin/docker exec "$MYSQL_CONTAINER" sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > "$SAVE_DIR/backup_`date +%Y%m%d`.sql" # find # -mtime n 指定檔案的最後修改時間(modification time),單位為天 # ex: find -mtime 7 => 七天內的被修改過的檔案會被搜出來 # -name 搜尋名字為後面字串的檔案 # -exec 將搜尋出來的結果導向後面的指令去執行 # ref: https://blog.gtwang.org/linux/unix-linux-find-command-examples/ find $data_dir -mtime +7 -name 'data_[1-9].sql' -exec rm -rf {} \;
資料來源: https://code.yidas.com/mysqldump/
備份單一資料庫
#mysqldump -h hostname -u root -p database_name > backup.sql;
備份資料庫中單一資料表
# mysqldump -u root -p database_name table_name > backup.sql;
備份資料庫中多張資料表
# mysqldump -u root -p database_name table1 table2 > backup.sql;
備份多個資料庫
# mysqldump -u root -p --databases db1 db2 > backup.sql;
備份所有資料庫
# mysqldump -u root -p --all-databases > backup.sql;
備份資料庫中單一資料表
# mysqldump -u root -p database_name table_name > backup.sql;
備份資料庫中多張資料表
# mysqldump -u root -p database_name table1 table2 > backup.sql;
備份多個資料庫
# mysqldump -u root -p --databases db1 db2 > backup.sql;
備份所有資料庫
# mysqldump -u root -p --all-databases > backup.sql;
復原使用mysql
復原單一資料庫
# mysql -u root -p database_name < backup.sql
復原多個資料庫
復原多個資料庫
# mysql -u root -p < backup.sql
因為新版mysqldump預設會使用UTF8,所以還原較沒問題,
因為新版mysqldump預設會使用UTF8,所以還原較沒問題,
若為舊版的mysqldump,
則需要使用–default-character-set 指定字集
留言
張貼留言