使用mysqldump命令以sql格式备份数据库。

3
我试图使用PHP的exec()函数来运行mysqldumpAmazon Web Service备份一个名为projectdata的数据库。但我只能创建一个空的sql文件。
我在Windows 7的xampp下运行php文件,其中mysqldump位于C:\xampp\mysql\mysqldump。
exec('C:\xampp\mysql\bin\mysqldump --user=user --password=password --host=cannotTellyou.amazonaws.com:3306 projectdata  > backup.sql');

你可以将你的解决方案发布为答案,并将其标记为正确答案。 - Mahendran Sakkarai
如果您在非标准端口(如5555)上运行MySQL,则mysqldump可以将--port=5555作为开关使用。如果指定了--port=3306,则MySQL dump可能已经工作。不提供端口允许mysqldump假定3306默认端口。 - zedfoxus
3个回答

0

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

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

应该同时使用-r选项,因为:

将输出直接写入给定文件。在MSDOS中应该使用此选项,因为它可以防止换行符'\n'被转换为回车符+换行符'\r\n'。


0

移除端口号后它可以正常工作

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

0
你需要做的是:通过ssh登录到你的AWS机器。在命令行中运行mysqldump并从那里开始调试。
ssh <your remote AWS using your private_key>

然后运行

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

如果你想压缩备份文件,可以使用gzip,否则不必要。

然后参考这篇文章: 如何从本地机器上mysqldump远程数据库


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接