执行 mysqldump 以 sql 格式备份数据库

Execute mysqldump to back up database in sql format

我正在尝试使用 PHP 的 exec() 函数来 运行 mysqldump 从 [=15] 备份名为 projectdata 的数据库=].但是我只能创建一个空的 sql 文件。

我运行使用xampp创建php文件,在Windows7下,我的sql转储在C:\xampp\mysql\mysqldump

exec('C:\xampp\mysql\bin\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com:3306 projectdata  > backup.sql');

您应该做的是:通过 ssh 登录您的 AWS 机器。 运行 命令行中的 mysqldump 并从那里开始调试。

ssh <your remote AWS using your private_key>

然后 运行

mysqldump -u <username> -p<password> yourDB | gzip > backupfilename.sql.tar.gz

如果要压缩备份文件,请使用 gzip,否则没有必要。

然后参考这个post: how to mysqldump remote db from local machine

我会尝试明确指定文件名而不是重定向输出。像这样:

exec('C:\xampp\mysql\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com:3306 projectdata -r backup.sql');

还应使用 -r 选项,因为:

Direct output to a given file. This option should be used in MSDOS, because it prevents new line '\n' from being converted to '\r\n' (carriage return + line feed).

去除端口号后有效

C:\xampp\mysql\bin\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com projectdata  > backup.sql