如何解决为什么在使用LOAD DATA INFILE时出现错误?
| 我正在尝试使用SQL
从笔记本电脑将csv
文件上传到数据库,但是出现一个奇怪的错误。我在phpMyAdmin的SQL窗口中键入的代码如下:
LOAD DATA INFILE \'/Users/myMac/testServerUpload.csv\'
INTO TABLE `testDatabase`
FIELDS TERMINATED BY \',\' LINES TERMINATED BY \'\\n\'
但我收到以下错误:
Error
SQL query:
LOAD DATA INFILE \'/Users/myMac/testServerUpload.csv\' INTO TABLE `testDatabase` FIELDS TERMINATED BY \',\' LINES TERMINATED BY \'\\n\'
MySQL said: Documentation
#1045 - Access denied for user \'ukld\'@\'%\' (using password: YES)
我应该使用LOAD DATA LOCAL INFILE
而不是当前命令,因为文件位于计算机上?两者都给我一个错误,我认为ѭ5可能意味着它在服务器上。我找不到搜索此错误的相关建议。
解决方法
我遇到了同样的问题,并通过使用LOCAL并提供了完整的文件路径来修复它:
\'C:/directory/file.csv\'
似乎1045错误是由于无法访问服务器上的文件而引起的,如果未指定LOCAL,则这是mySQL查找文件的位置。
也可以看看:
http://dev.mysql.com/doc/refman/5.1/en/mysqlimport.html
, 您需要以root用户身份登录并运行:
SHOW GRANTS FOR \'ukld\'@\'%\';
可能是您没有您认为自己拥有的权限...您需要对要尝试进入的数据库和表执行INSERT权限,这会LOAD DATA
。
更新:
要更正GRANT问题,请在MySQL安装中以root用户身份运行以下语句:
REVOKE SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER,CREATE TEMPORARY TABLES,LOCK TABLES,EXECUTE,CREATE VIEW,SHOW VIEW,CREATE ROUTINE,ALTER ROUTINE
ON ukld.* FROM \'ukld\'@\'%\';
GRANT SELECT,ALTER ROUTINE
ON ukld.* TO \'ukld\'@\'%\' IDENTIFIED BY PASSWORD \'xxx\';
FLUSH PRIVILEGES;
确保在第二条语句中设置了正确的密码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。