我在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”不起作用呢?
感谢。
答案 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;