gpt4 book ai didi

php - 使用exec的php中的mysqldump返回空文件

转载 作者:行者123 更新时间:2023-11-30 22:28:09 27 4
gpt4 key购买 nike

我浏览过几篇帖子,其中人们设法解决了他们的问题,但不幸的是我没有成功。我在 Windows 上使用 wamp,我的 php 文件如下所示

<?php 
include_once("config.php");
$_user = "username";
$_pass = "password";
$_db = "dbname";
$command = 'C:\wamp\bin\mysql\mysql5.6.17\bin\mysqldump -u '.$_user.' -p'.$_pass.' '.$_db.' > test.sql';
exec($command);
echo "<br />".$command;
?>

创建了文件名test.sql,但它是0字节。我也尝试将 mysqldump 更改为 mysqldump.exe 但没有成功。在此之前,我尝试不定义 mysqldump 的路径,在这种情况下,该过程从未结束。现在进程立即结束,但文件为空。

最佳答案

我也遇到了同样的问题,而且一直在抓头发,因为我找到的解决方案都不适合我。

最后,我尝试从 cmd(Windows 的命令提示符)运行命令,发现 Windows 无法找到该 MySQL 命令的路径。

无论如何,长话短说,这是对我有用的方法,您可以摆脱 mydsqldump 命令的绝对路径:

  1. 按照 this page 上的说明进行操作 将 MySQL 添加到 Windows 的路径。
  2. 重新启动您的 WAMP。如果打开了 cmd 窗口,请将其也关闭。
  3. (如果要测试新插入的路径,则可选)通过在 Windows 搜索中搜索“cmd”打开一个 cmd 窗口,然后输入不带引号的“mysqldump”。
    如果它返回如下使用说明然后恭喜,您的 MySQL 路径成功了!
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
  1. 在您的代码中,删除您的 (C:\wamp\bin\mysql\mysql5.6.17\bin) mysqldump 命令的绝对路径,只留下没有任何路径的 mysqldump。以下是对我有用的:

    $command = 'mysqldump --opt --host=YOUR_HOST --password="YOUR_PASSWORD" --user=YOUR_DB_USER --databases YOUR_DB_NAME > PATH_TO_FILE/FILE_NAME.sql';
  2. 将上面代码中的大写部分替换成自己的信息

  3. 再次运行您的代码。

    希望这或多或少有所帮助。

关于php - 使用exec的php中的mysqldump返回空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34670723/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com