将脚本加载到mysql时为什么会出现此错误?

时间:2014-10-09 12:52:04

标签: mysql csv

我想使用这个脚本:

-- De drop table if exists zorgt ervoor als tabellen die later in dit script
worden aangemaakt al bestaan, dat deze worden verwijderd.
drop table if exists Oligos;
drop table if exists Genen;

-- In de table Genen wordt de tabel Genen aangemaakt. Ook staat hier in welke
waardes worden geaccepteerd in elke kolom.
create table Genen
(gen_id      int     not null unique,
chromosoom  int     null,
sequentie   text     not null,
primary key(gen_id)
);
-- In de table Oligos wordt de tabel Oligos aangemaakt. Ook staat hier in welke
waardes worden geaccepteerd in elke kolom.
create Table Oligos
(oligo_id      int     auto_increment,
gen  int     null,
sequentie   text     not null,
startpositie    int     not null,
stoppositie     int     not null,
smeltpunt   float       not null,
valide_probe     boolean    null,
foreign key(gen) references Genen(gen_id),
primary key(oligo_id)
);

LOAD DATA INFILE 'test.csv'
INTO TABLE Genen FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n' (gen_id, chromosoom, sequentie);

test.csv内我有2条简单的行用于测试目的:

323;4;skdjksdjkk
123;4;jknfrkfn

这是我的命令:

$ mysql --local-infile=1 -u rnieuwenhuis -D Rnieuwenhuis -p < Plasmodium_falciparum.sql 

,它返回的错误是:

  

第25行的错误1045(28000):用户访问被拒绝&#39; rnieuwenhuis&#39; @&#39;%&#39; (使用密码:是)

我无法找出导致这种情况的原因。第25行是LOAD DATA行。访问被拒绝的mysql帮助页面留下了很多可能性。但也许你们知道最常见的原因是什么。

1 个答案:

答案 0 :(得分:1)

看起来像普通的访问错误。您的用户没有所需的权限。因为它只在第25行而不是在开始时,登录工作,但特权是不够的。可能缺少CREATE。

请检查您的用户权限。

1)通过mysql -u rnieuwenhuis -D Rnieuwenhuis -p登录 如果这样做,您的用户名和pq是正确的。但我们已经确定了这一点。

2)执行此查询SHOW GRANTS 'rnieuwenhuis'@'localhost';甚至SHOW GRANTS FOR CURRENT_USER(); 这应该显示您当前拥有的权限列表。

3)确保授予的权限包含脚本所需的任何内容。特别是CREATE

4)如果没有,请以root身份(或具有必要权限的其他用户)登录并授予用户权限。 GRANT CREATE ON *.* TO 'rnieuwenhuis'@'localhost';这假设您的数据库与您正在使用的用户相同,并且您希望在所有数据库上授予权限,而不仅仅是一个数据库。如果您想要做一些不同的事情,请按照以下链接更改*.*

一些有趣的链接: