【问题标题】:mysqldump and wampmysqldump 和 wamp
【发布时间】:2009-10-21 14:04:31
【问题描述】:

更新:终于搞定了这个东西,但仍然不确定问题出在哪里。我正在使用通过网络文件夹访问的 wamp 服务器。

仍然存在的问题是,要执行 mysqldump,我必须从用于托管 WAMP 服务器的实际机器访问 php 文件。

更新结束

我正在运行 wamp 服务器并尝试使用 mysqldump 来备份我拥有的 mysql 数据库。以下是我用来运行 mysqldump 的 PHP 代码。

exec("mysqldump 备份 -u$user -p$pass > $sql_file");

当我运行脚本时,页面只是立即加载并且没有创建备份。

正在创建一个空白文件,所以我知道正在发生一些事情。

额外信息:

* exec() is not disabled
* PHP is not running in safe mode

有什么想法吗??

Win XP、WAMP、MYSQL 5.0.51b

【问题讨论】:

  • 我尝试使用 MYSQL 管理员(GUI 工具)连接到数据库,但收到“MYSQL 错误号 2003 无法连接到本地主机 (10061) 上的 MySQL 服务器”。有谁知道如何解决这个问题???

标签: php mysql wamp wampserver


【解决方案1】:

mysqldump 可能会超过 php 应该在您的系统上运行的最长时间。尝试在 cmd 中使用命令或增加 php.ini 中的 max_execution_time 。

【讨论】:

    【解决方案2】:

    您确定$pass 已定义并且开头没有空格字符吗?

    如果不是,mysqldump 将等待命令行输入密码。

    【讨论】:

      【解决方案3】:

      不久前我也发生过同样的事情。一位同事向我指出 MySQL GUI 工具,我一直在用它进行备份。自带的查询浏览器也不错。

      MySQL GUI tools

      【讨论】:

        【解决方案4】:

        查看 mysqldump 的 stderr 输出可能会有所帮助:

        $cmd = "mysqldump backup -u$user -p$pass 2>&1 > $sql_file";
        exec($cmd, $output, $return);
        if ($return != 0) { //0 is ok
            die('Error: ' . implode("\r\n", $output));
        }   
        

        如果$user$pass 是用户提供的,您也应该使用escapeshellarg()

        【讨论】:

        • 我已将此代码添加到我的脚本中,但我仍然没有收到任何错误信息。剧本似乎永远不会结束!!!我用过 set_time_limit(30);在脚本之前,但这似乎没有任何效果。
        【解决方案5】:

        我也一直在努力使用 mysqldump 实用程序。根据我的经验,我有几件事要检查/尝试:

        • 您的服务器是否设置为允许程序使用 exec 命令运行程序? (我的虚拟主机服务器不允许。)使用不同的命令进行测试。

        • 是否安装了 mysqldump 实用程序?请与whereis mysqldump联系。

        • 尝试添加优化参数--opt

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-24
          • 2014-02-25
          • 2013-07-27
          • 1970-01-01
          • 1970-01-01
          • 2014-11-13
          相关资源
          最近更新 更多