寫資料庫備份腳本時,會避免把密碼放在腳本裡,免得密碼流出去。
這時候密碼要藏在那邊呢?
postgresql
postgresql 的 pg_dump 預設會去讀取 $HOME/.pgpass
檔案,所以可以把帳號跟密碼放在這邊,腳本裡使用 pg_dump 進行備份時就不需要額外用參數指定。
.pgpass 檔案的內容是
hostname:port:database:username:password
- hostname: 資料庫主機
- port: 資料庫主機的 port
- database: 資料庫
- username: 連線的使用者帳號
- password: 連線的使用者密碼
使用的時候,就不需要指定密碼了
pg_dump -h <db_host> -U <db_user> -F c -f $dump_file <db_name>
mysql
一般備份 mysql 資料庫會使用 mysqldump,mysqldump 有個參數 --defaults-file=<config_file>
所以可以用這個參數來指定,先在 $HOME/.config 資料夾下新增 backup.my.cnf 檔案,內容如下
[mysqldump]
user=<db_user>
password=<db_pass>
- <db_user>: 放連線的使用者帳號
- <db_pass>: 放連線的使用者密碼
至於主機的部份,可以用 mysqldump 參數指定,例如
mysqldump --defaults-file=$HOME/.config/backup.my.cnf -h <db_host> <db_name>
沒有留言:
張貼留言