2011-06-01 62 views
0

我试图用SQL从我的笔记本上传一个csv文件到数据库,但是我得到一个奇怪的错误。我打字到在phpMyAdmin SQL窗口中的代码如下:为什么使用LOAD DATA INFILE时会出现错误?

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,而不是我目前的命令,该文件是在我的电脑上?两者都给我一个错误,我认为LOCAL可能意味着它在服务器上。我找不到有关此错误的建议。

回答

0

您需要登录为root用户,运行:

SHOW GRANTS FOR 'ukld'@'%';

机会是你没有,你认为你做的权限......你需要对数据库和表(S INSERT特权)您正在尝试LOAD DATA


UPDATE:

要纠正GRANT问题,在你的MySQL运行这些语句为根安装:

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, INSERT, UPDATE, DELETE, CREATE, 
     DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, 
     LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, 
     CREATE ROUTINE, ALTER ROUTINE 
     ON ukld.* TO 'ukld'@'%' IDENTIFIED BY PASSWORD 'xxx'; 

FLUSH PRIVILEGES; 

确保在设置了正确的密码第二个陈述。

+0

@AJ我想,结果如下:'GRANT USAGE ON *已确定BY PASSWORD 'ukld' @ '%' 'XXX'。GRANT选择,插入,更新,删除,创建,删除,索引,ALTER,创建临时表,锁表,执行,创建视图,显示视图,创建例程,改变常规'ukld'。* TO'ukld'@' %' ' – djq 2011-06-01 01:22:28

+0

看起来像第二个GRANT语句缺少'IDENTIFIED BY PASSWORD'xxx'部分... – 2011-06-01 01:24:08

+0

嗯。这是我的数据库,我可以手动将csv文件导入到它。当我运行“SQL”这行时,有什么方法可以输入密码? – djq 2011-06-01 01:26:02

2

我有同样的问题,并通过使用本地,并给予完整的文件路径固定它:

'C:/directory/file.csv' 

看来1045错误来自没有访问文件的服务器,这是在上如果未指定LOCAL,mySQL将查找该文件。

参见: