1

我正在尝试使用将文件从笔记本电脑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由于文件在我的计算机上,我应该使用而不是当前命令吗?两者都给我一个错误,我认为LOCAL可能意味着它在服务器上。我找不到搜索此错误的相关建议。

4

2 回答 2

2

我遇到了同样的问题并通过使用 LOCAL 并提供完整的文件路径来修复它:

'C:/directory/file.csv' 

似乎 1045 错误来自无法访问服务器上的文件,如果未指定 LOCAL,mySQL 会在该文件中查找文件。

也可以看看:

于 2011-10-31T10:22:15.393 回答
0

您需要以 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, 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;

确保在第二条语句中设置了正确的密码。

于 2011-06-01T01:19:12.403 回答