无法使用LOAD DATA INFILE将数据加载到MySQL数据库

时间:2012-06-13 12:07:55

标签: mysql load-data-infile

我在Ubuntu 12.04中使用LAMP。我在MySQL中创建了一个新用户(myserver @ localhost),并在该数据库上为该用户授予了ALL。有一个文本文件,其权限设置为每个人阅读。但是当我尝试将该文本文件中的数据加载到数据库时,它会显示“对用户'访问被拒绝'myserver'@'localhost'(使用密码:是)”

我使用的查询是:

LOAD DATA INFILE "~/text/member_info.txt" INTO TABLE member FIELDS TERMINATED BY '|';

我可以想一下PHP中的一些循环的解决方法,但为什么“LOAD DATA INFILE”不起作用呢?

感谢。

1 个答案:

答案 0 :(得分:1)

这是因为您在Ubuntu LTS 12.04中使用的MYSQL 5.5版本:mysql doc

来自mysql doc comment:

  

您可以在不使用最新版本的PHP的情况下使用LOAD DATA LOCAL   重新编译PHP。

     

传递128(CLIENT_LOCAL_FILES常量的值)作为   mysql_connect()的第五个参数启用了LOAD DATA LOCAL   客户方。

     

示例:$ dbh = mysql_connect($ server,$ user,$ pass,false,128);

     

对于PHP 4.3及以上版本。

但实际上,mysql_connect()已经过时,我无法使用mysqli找到解决方案。

这就是为什么我最终使用this解决问题的原因。

grant file on *.* to mydatabase@localhost identified by 'myuser';

现在$ mysqli->查询(" LOAD DATA INFILE'"。$ proxy_file_name_path。"' IGNORE INTO TABLE mytable(myfield)& #34;