本教學使用環境介紹
伺服器端:Ubuntu 18.04 LTS
資料庫:Mariadb 10.1.34(Mysql)
語言版本:php 7.3
本機端:MacOS High Sierraphp
一開始本來是用 php 去備份資料庫,可是發現會有一些問題,因而改爲這種方式,直接透過 mysql 去備份,出來的格式也不會有什麼問題。html
$ crontab -e
設定天天凌晨00:00 執行mysql
0 0 * * * php /var/www/backup.php
backup.php 腳本記得開頭必定要 「<?php
」,即使你有啓用縮寫sql
<?php // 設定環境 header('Content-Type: text/html; charset=utf-8'); // 設定保存的資料夾位置 $dir = "/var/www/db/"; // 設定檔名 $filename = "dev-" . date("Y-m-d-H-i-s") . ".sql.gz"; // 設定資料庫 $db_host = "localhost"; $db_username = "root"; $db_password = "password"; $db_database = "db"; // 準備 cmd $cmd = "mysqldump -h {$db_host} -u {$db_username} --password={$db_password} {$db_database} | gzip > {$dir}{$filename}"; // 執行 cmd exec($cmd); header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$filename\""); passthru("cat {$dir}{$filename}"); ?>
輸出時會通過 gzip
解壓縮
實驗過本來 150MB
的 sql 壓縮後爲 28MB
app
Line ID:ianmac
QQ:1258554508code