MySQLDump执行但不是创建文件

时间:2015-12-27 05:14:22

标签: mysql mysqldump

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服务器来执行任何操作。

2 个答案:

答案 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”。

享受:)