【问题标题】:Execute mysqldump to back up database in sql format执行mysqldump以sql格式备份数据库
【发布时间】:2015-08-11 21:09:38
【问题描述】:

我正在尝试使用 PHP 的 exec() 函数运行 mysqldump 从 Amazon 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');

【问题讨论】:

  • 您可以发布您的solution as a answer 并将其标记为正确答案。
  • 如果你在5555这样的非标准端口上运行MySQL,mysqldump可以将--port=5555作为开关。如果您指定了--port=3306,MySQL 转储可能会起作用。不提供端口允许 mysqldump 假定 3306 默认端口。

标签: php mysql amazon-web-services mysqldump


【解决方案1】:

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

ssh <your remote AWS using your private_key>

然后运行

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    直接输出到给定的文件。此选项应在 MSDOS 中使用,因为它可以防止将新行 '\n' 转换为 '\r\n'(回车 + 换行)。

    【讨论】:

      【解决方案3】:

      去掉端口号就可以了

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多