使用select into outfile拒绝php / mysql访问

时间:2013-01-24 17:33:33

标签: php mysql

我有以下php代码:

<?php

$hostname="db.";
$database="db..";
$username="db...";
$password="pw...";
$mysql = mysql_connect($hostname, $username, $password);

if(!$mysql) 
 echo 'Not conneted to the database...' . mysql_error() ;
else
 echo 'Connected to the database...' ;

// select the appropriate database
$mysqldb = mysql_select_db( $database );
if(!$mysqldb) 
 die('Could not select the database...'  . mysql_error());
else
 echo '<br /><br />Connected to database...<br /><br />' ;

$chk_table_access = 'select * from table_name where 1';
$chk_access = mysql_query($chk_table_access);
echo $chk_table_access . '<br /><br />';
if (!$chk_access) 
 echo 'Could not access table: ' . mysql_error() ;
else
 echo 'Table was accessed..<br /><br />' ;

$backup = 'SELECT * INTO OUTFILE "result.csv" FIELDS TERMINATED BY "," OPTIONALLY     ENCLOSED BY ';
$backup = $backup . "'" . '"' . "'" ;
$backup = $backup . ' FROM cities WHERE 1';
echo $backup . '<br /><br />';
$bk_success = mysql_query($backup);
if (!$bk_success)
 echo 'The backup was not successful. Reason: '  . mysql_error();
?>

该程序在localhost上正常运行,但是当我从我的网站运行时,我收到以下错误:用户'dbo访问被拒绝'''%'(使用密码:是) 。网络帮助没有多大帮助。

我确实得到了“Table was visited ..”消息,所以我正在访问该表。我每天都对目录不满意而且没有错误。我理解为什么它在phpMyAdmin中不起作用。我有点难过。这也是我在这个论坛上提出的第一个问题,尽管我经常来这里寻求帮助。你们(包括女士)摇滚。 提前致谢, 史蒂夫

1 个答案:

答案 0 :(得分:0)

您的MySQL用户显然缺少FILE privilege

MySQL服务器是否与Web服务器在同一台机器上运行?如果两个服务器都在不同的计算机上运行,​​则可以在此处停止:即使具有FILE权限,也会在数据库服务器上创建输出文件(并且可能无法从Web服务器访问)。