如Backup and Restore MySQL database in PHP中所述,我试图备份/恢复整个数据库。我的代码是:
<?php
include '/../in/db/db_config.php';
define("BACKUP_PATH", "/");
$database_name = "backup";
$date_string = date("Ymd");
$cmd = "mysqldump --routines -h {DB_SERVER} -u {DB_USER} -p{DB_PASSWORD} {DB_DATABASE} > " . BACKUP_PATH . "{$date_string}_{$database_name}.sql";
exec($cmd);
?>
我已将数据库凭据存储在另一个文件中,如下所示:
define('DB_USER', "****");
define('DB_PASSWORD', "****");
define('DB_DATABASE', "****");
define('DB_SERVER', "****");
?>
当我吟唱脚本时,它成功运行,没有任何错误,但没有创建文件。此外,我没有SSH访问Web服务器来执行任何操作。
答案 0 :(得分:0)
您无法使用>
命令中的exec
来管道输出。
答案 1 :(得分:0)
您可以使用以下Bash脚本转储所有mysql数据库:
1)创建文件“dumpsqldb.sh”并将下面的代码写入其中。
#! /bin/bash
BACKUP_DIR="DUMPDBFILES"
MYSQL_USER="root"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD="XXXXX"
MYSQLDUMP=/usr/bin/mysqldump
#mkdir -p "$BACKUP_DIR"
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
for db in $databases; do
$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/$db.gz"
done
2)转到保存sh文件的路径
3)将下面的命令运行到终端
$ sh dumpsqldb.sh
只需替换“MYSQL_USER”和“MYSQL_PASSWORD”。
享受:)