php - 使用 PHP 脚本 : why mysqldump does not dump sql file?

标签 php mysql

嘿,我是 PHP 的新手,正在尝试使用 php 脚本使用 mysqldump。
我已经尝试使用命令并且转储过程成功。
情况是,当我尝试使用本地计算机进行转储时,转储成功。
但是当代码传输到服务器时,mysqldump 没有工作。 mysqldump主题相关的方案我几乎都试过了,还是不行。我希望有人能指导我。质量

<?php

/*-----------------------------------------------
MYSQLDUMP FOR SERVER
------------------------------------------*/


$dbhost = "*****";
$dbuser = "*****";
$dbpass = "*****";
$dbname = "*****";

//set date today
$today=date("d-m-Y");

//set file name
$filename = "leave_".$today.".sql";

//MYSQLDUMP 

//For Server 
$command = sprintf("/usr/bin/mysqldump --opt -h%s -u%s -p%s %s     >/var/www/html/leave/leave/backup/%s",

//for local
//$command = sprintf("c:\AppServ\MySQL\bin\mysqldump --opt -h%s -u%s -p%s %s > %s",

$dbhost,
$dbuser,
$dbpass,
$dbname,
$filename
);
system($command);



/*-------------------------------------------------------------
TO SAVE FILE SQL INTO LOCAL
---------------------------------------------------------------*/

$file = "leave_".$today.".sql";
if(!$file)
{
   // File doesn't exist, output error
      die('File not found');
}
else
{
// Set headers to ask user where to save file.
header('Pragma: anytextexeptno-cache', true);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-Type: text/plain");
header("Content-Disposition: attachment; filename=$file");

 // Read the file from disk
 readfile($file);


 }



 ?>

最佳答案

好吧,其实我发题几天后就已经解决了这个问题。不幸的是,我没有足够的声誉来发布答案。所以我们开始吧。

以下是一些需要注意的事情:-

  1. 强制使用 MySQL 转储的绝对路径。
  2. 尝试使用 --opt(MySQL 转储的默认选项)。阅读更多 here .
  3. 对于选项,如果使用缩写形式,则不需要有(--)。例如:--p。使用完整形式时使用 (--)。例如:--密码。因此,请使用“-p”而不是“--p”(也适用于其他选项)。
  4. 如果 mysqldump 在 'exec' 上不起作用,请尝试 'shell_exec' 或 'system'。
  5. 尽量避免选项和变量之间有空格。例如:-p$dbpass

*另请注意,系统命令是否可以从 php 执行与权限有关。

关于php - 使用 PHP 脚本 : why mysqldump does not dump sql file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26749853/

相关文章:

php - 如何在 PHP 中生成渐进式顺序唯一 id?

php - (懒惰)预加载不适用于 Laravel 中的自定义集合

php - 从数据库 PHP 填充下拉列表

php - 使用 LIKE 函数查询日期的 MYSQL 查询

php - 如何防止 SQL 注入(inject)更改 URL 参数(DELETE 语句)PHP

php - 安装联系表7插件后缺少原始联系表样式

php - 替换表中所有现有数据

mysql - 我将如何托管多个与 Heroku 共享相同 Mysql 数据库的 Spring Boot Web 应用程序?

mysql - 仅更改 MySQL 中一组表的更新和删除规则

php - HTML ajax 响应不执行 javascript 函数