Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP备份MySQL数据库_Php_Mysql_Backup - Fatal编程技术网

使用PHP备份MySQL数据库

使用PHP备份MySQL数据库,php,mysql,backup,Php,Mysql,Backup,我试图使用下面的PHP脚本对MySQL数据库进行一个名为“备份”的备份,但由于某些原因,它不起作用。你知道怎么了吗?我想在包含数据的同一文件夹中创建一个名为test.sql的文件(因为数据库很大,我只选择了Temp>35的值,但我可以稍后更改)。现在当我运行它时,我得到了回音,但没有创建任何文件 <?php $dbhost = '...'; $dbuser = '...'; $dbpass = '...'; $dbname = 'backup'; $conn = mysql_connect

我试图使用下面的PHP脚本对MySQL数据库进行一个名为“备份”的备份,但由于某些原因,它不起作用。你知道怎么了吗?我想在包含数据的同一文件夹中创建一个名为test.sql的文件(因为数据库很大,我只选择了Temp>35的值,但我可以稍后更改)。现在当我运行它时,我得到了回音,但没有创建任何文件

<?php
$dbhost = '...';
$dbuser = '...';
$dbpass = '...';
$dbname = 'backup';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

$tableName  = 'backup';
$backupFile = 'test.sql';
$query      = "SELECT * WHERE Temp>35 INTO OUTFILE '$backupFile' FROM $tableName";
$result = mysql_query($query);
echo "Backed up";
?>
试试看

$query  = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName WHERE Temp>35";
$result = mysql_query($query) or die(mysql_error());
试试这个,让我知道:


确保允许mysqld写入文件
$backupFile
提供绝对路径,确保运行mysqld的用户可以写入文件/目录。另外,
echo mysql_error()可能会给你一个线索。我尝试了echo错误,你可能是对的,权限有问题,但我如何设置它们?用户“…”@“%”(使用密码:是)的访问被拒绝我得到:用户“…”@“%”(使用密码:是)的访问被拒绝,因此我尝试添加:将$dbname.*上的所有权限授予由“…”标识的“…”@“”;现在我得到:Parse error:syntax error,在…@user2370078中出现意外的T_字符串。您是在您的计算机上还是在远程服务器上运行它?远程服务器,我将dbhost、dbuser等的值设置为我用来登录我的服务器的值phpBB@user2370078通过命令行?您确定数据库详细信息正确吗?用户“…”@“%”(使用密码:是)的访问被拒绝授予此权限:只需单击服务器:localhost(打开phpMyAdmin时应为起始页),然后单击权限,选择您的用户并在数据部分添加勾号或文件(因此,不要向下滚动并选择特定的数据库)
Try this and let me know:

  <?php
  $dbhost = '...';
  $dbuser = '...';
  $dbpass = '...';
  $dbname = 'backup';
  $conn = mysql_connect($dbhost, $dbuser, $dbpass);
  mysql_select_db($dbname);

  $databasename  = 'backup';
  $backupFile = 'test.sql';
  $query      = "SELECT * INTO OUTFILE '$backupFile' FROM $databasename WHERE Temp>35";
  $result = mysql_query($query);
  echo "Backed up";
  ?>
<?php
    $source_db='source_db';
    $target_db='target_db';

    $server='127.0.0.1';
    $user='root';
    $password='';

    mysql_connect($server,$user,$password);
    mysql_select_db($source_db);

    // Get names of all tables in source database
    $result=mysql_query("show tables");
    while($row=mysql_fetch_array($result)){
        $name=$row[0];
        $this_result=mysql_query("show create table $name");
        $this_row=mysql_fetch_array($this_result);
        $tables[]=array('name'=>$name,'query'=>$this_row[1]);
    }

    // Connect target database to create and populate tables
    mysql_select_db($target_db);

    $total=count($tables);
    for($i=0;$i < $total;$i++){
        $name=$tables[$i]['name'];
        $q=$tables[$i]['query'];

        mysql_query($q);
        mysql_query("insert into $name select * from $source_db.$name");
    }

?>