代码之家  ›  专栏  ›  技术社区  ›  Sloan Thrasher

php joomla 2.5 mysql加载数据填充-权限被拒绝

  •  1
  • Sloan Thrasher  · 技术社区  · 8 年前

    我正在尝试将csv文件加载到表中。我收到一个被拒绝的权限错误:

    Error importing CSV File: (1045) Access denied for user 'username'@'localhost' 
    (using password: YES) 
    SQL=LOAD DATA INFILE '//homeX/username/public_html/activator/uploadedCSV/20180603064917_csvtoimport.csv'
      IGNORE INTO TABLE `csv_import_temp` 
      FIELDS TERMINATED BY ',' 
      OPTIONALLY ENCLOSED BY '"' 
      ESCAPED BY '\\' 
      LINES TERMINATED BY '\r\n' 
      IGNORE 1 ROWS 
      ( contact_lname, contact_email ) ;
    

    CSV文件存在,并且权限设置为 0644 .

    SQL语句是:

    LOAD DATA INFILE '//homeX/username/public_html/activator/uploadedCSV/20180603064917_csvtoimport.csv'
    IGNORE
    INTO TABLE `csv_import_temp`
    FIELDS TERMINATED BY ',' 
    OPTIONALLY ENCLOSED BY '"' 
    ESCAPED BY '\\'
    LINES TERMINATED BY '\r\n'
    IGNORE 1 ROWS
    (
        contact_lname,
        contact_email
    );
    

    我试过在文件名中同时使用前导单斜杠和双斜杠(如上所述)。我也试过在phpadmin中运行它并得到同样的错误消息。

    该站点托管在hostgator共享帐户上。

    我添加了代码来验证该文件是否存在,以及是否具有正确的权限,它说确实存在。但mysql似乎无法访问该文件。

    是的,我知道joomla 2.5是生命的终结,但是由于很多原因,这个网站不能升级,而且只用于管理功能。

    任何建议都是受欢迎的,因为另一种选择是用php读取文件并插入每一行,这会慢得多。

    CSV的前4行:

    "name","email"
    "John Smith","xxx1@yyy.edu"
    "John Doe","xxx2@yyy.edu"
    "Jane Doe","xxx3@yyy.edu"
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Nick    8 年前

    此错误通常是由于您不包括本地关键字。尝试:

    LOAD DATA LOCAL INFILE '//homeX/username/public_html/activator/uploadedCSV/20180603064917_csvtoimport.csv'
    IGNORE
    INTO TABLE `csv_import_temp`
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
    LINES TERMINATED BY ''
    IGNORE 1 ROWS
    (
        contact_email,
        contact_email
    );
    

    权限错误是误导性的,它与尝试使用mysql系统目录而不是您试图读取的文件有关。