我想讓客戶端能夠手動下載他的數據庫的備份。我正在使用PHP和MySQL編碼網站。因此,在admin用戶登錄後,菜單中會出現一個鏈接,用於將.sql文件下載到本地計算機。我怎樣才能用PHP完成這項工作?MySQL數據庫的PHP下載備份
回答
這會導致混亂嘗試備份從PHP數據庫,你將讓MySQL的處理這個問題的更好,並告訴mysql做到這一點,最好的方法是使用shell腳本:
#!/bin/bash
# Shell script to backup MySql database
# To backup Nysql databases file to /backup dir and later pick up by your
# script. You can skip few databases from backup too.
# For more info please see (Installation info):
# http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
# Last updated: Aug - 2005
# --------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2004, 2005 nixCraft project
# Feedback/comment/suggestions : http://cyberciti.biz/fb/
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
MyUSER="SET-MYSQL-USER-NAME" # USERNAME
MyPASS="SET-PASSWORD" # PASSWORD
MyHOST="localhost" # Hostname
# Linux bin paths, change this if it can not be autodetected via which command
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
# Backup Dest directory, change this if you have someother location
DEST="/backup"
# Main directory where backup will be stored
MBD="$DEST/mysql"
# Get hostname
HOST="$(hostname)"
# Get data in dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y")"
# File to store current backup file
FILE=""
# Store list of databases
DBS=""
# DO NOT BACKUP these databases
IGGY="test"
[ ! -d $MBD ] && mkdir -p $MBD || :
# Only root can access it!
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
# Get all database list first
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
for db in $DBS
do
skipdb=-1
if [ "$IGGY" != "" ];
then
for i in $IGGY
do
[ "$db" == "$i" ] && skipdb=1 || :
done
fi
if [ "$skipdb" == "-1" ] ; then
FILE="$MBD/$db.$HOST.$NOW.gz"
# do all inone job in pipe,
# connect to mysql using mysqldump for select mysql database
# and pipe it out to gz file in backup dir :)
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
fi
done
然後你告訴PHP告訴操作系統執行該腳本,並等待它完成,這通常是用做exec
或system
如:
exec('/path/to/backup/script.sh');
然後,你可以簡單地發送由創建的文件腳本到達瀏覽器t用戶。
+1讓MySQL做到這一點是路要走。從上面的腳本中刪除重要的是使用'mysqldump'。請參閱http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html以獲取更多參考。 – mfonda 2011-04-12 21:13:49
shell腳本似乎是最好的解決方案,因爲你可以更好地控制錯誤等,如果你只是用'mysqldump'和'exec',那麼你很可能會遇到一些錯誤。 – RobertPitt 2011-04-12 21:16:07
感謝這使我在正確的軌道上,但我做了我自己的shell腳本來執行mysqldump命令 – 2011-04-12 22:21:25
- 1. PHP MySQL數據庫備份
- 2. PHP下載完整的mysql數據庫爲.sql備份文件
- 3. Mysql數據庫備份使用PHP並在下載時間在自定義指定位置下載備份
- 4. MySQL PHP Hack預防/數據庫備份?
- 5. 備份用PHP整個數據庫/ MYSQL
- 6. 備份mysql數據庫使用php
- 7. PHP腳本備份mysql數據庫
- 8. 使用mysqldump Mysql PHP備份數據庫
- 9. 使用PHP備份MySQL數據庫
- 10. 備份MySQL數據庫和下載的文件
- 11. NodeJS:備份MySQL數據庫
- 12. pythonanywhere備份mysql數據庫
- 13. 備份MySQL數據庫
- 14. MySQL數據庫備份
- 15. Mysql數據庫備份
- 16. MySQL備份數據庫
- 17. 如何使用PHP在Windows xampp下備份MySQL數據庫?
- 18. 備份數據庫從PHP
- 19. PHP備份和下載
- 20. 使用C的MySQL數據庫備份#
- 21. mysql - 備份相關的innodb數據庫
- 22. 備份非常大的MySQL數據庫
- 23. 備份mysql數據庫的Java代碼
- 24. 備份mysql數據庫的IProblem
- 25. mysqldump的mysql數據庫備份
- 26. MySQL數據庫的遠程備份
- 27. 備份MySQL數據庫的Bash腳本
- 28. 使用PHP的MySQL數據備份
- 29. MySQL數據備份?
- 30. 備份mysql數據
http://stackoverflow.com/questions/3595976/backup-mysql-database-with-php類似 – mikel 2011-04-12 21:08:26
[備份mysql數據庫並將其作爲文件下載]的完全重複(http://stackoverflow.com/問題/ 3751069/backup-a-mysql-database-and-download-as-a-file),以及右邊相關列表中的一半問題。 – Charles 2011-04-12 21:08:32