【问题标题】:connection problems when running mysql query from php file从 php 文件运行 mysql 查询时的连接问题
【发布时间】:2013-05-23 18:32:07
【问题描述】:

我编写的脚本有问题,该脚本用于根据 csv 文件的内容自动更新库存水平。 在我的本地 zend 服务器上,它运行良好。注意,phpMyAdmin 有 root 用户,没有密码。

但是,当上传到客户端服务器时,我收到一条错误消息:

PHP Fatal error:  1045:Access denied for user 'xxxxxx_xxxxxx'@'localhost' (using password: YES) ::     LOAD DATA INFILE '/home/xxxxxxxx/public_html/tradeboxstock/stock.csv'
 INTO TABLE stock_temp
 FIELDS TERMINATED BY ','
 ENCLOSED BY '"'
 LINES TERMINATED BY '
'  (products_model, products_quantity); in /home/xxxxxxxx/public_html/includes/classes/db/mysql/query_factory.php on line 121

部分代码如下:

//Set directory of csv file
$file_path = DIR_FS_CATALOG . 'tradeboxstock/stock.csv';

// Empty old data from the temp table
$db->Execute("DELETE FROM ".TABLE_STOCK_TEMP."");
$table = ("".TABLE_STOCK_TEMP."");
echo "Historical stock data cleared";
?>
</br>
<?php
echo "Processing - Please wait...";

//extract data from the csv to the temp table
$query = <<<eof
LOAD DATA INFILE '$file_path'
INTO TABLE $table
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(products_model, products_quantity);
eof;
$db->Execute($query);
echo "Import to temp database table complete";

我知道与数据库的连接正常,因为我得到回声说历史库存已被清除,所以我不明白为什么当它到达应该读取的部分时出现访问被拒绝错误将 csv 内容放入临时表中。

如上所述,这在我的本地 zend 服务器上完美运行。

在我把头发扯掉之前,任何帮助都非常感谢

【问题讨论】:

    标签: mysql dbconnection


    【解决方案1】:

    检查授予用于连接 MySQL 的 PHP 用户的权限。

    mysql> SHOW GRANTS FOR 'user'@'localhost'
    

    要使导入工作,触发LOAD DATA 的用户必须具有FILE 权限。

    mysql> GRANT FILE ON *.* TO 'user'@'localhost'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      相关资源
      最近更新 更多