2014-10-09 40 views
1

我想使用這個腳本:爲何在將腳本加載到mysql時出現此錯誤?

-- 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 

和錯誤時退貨是:

ERROR 1045(28000),第25行:拒絕訪問用戶rnieuwenhuis'@ '%'(使用密碼:YES)

我無法找出是什麼原因導致這一點。 25行是LOAD DATA行。訪問被拒絕的mysql幫助頁面留下了很多可能性。但也許你們知道最常見的原因是什麼。

+1

看起來像一個正常的訪問錯誤。您的用戶沒有所需的權限。由於它只在第25行,而不是在開始,登錄工作,但特權是不夠的。這可能是'CREATE'缺失。 – ToBe 2014-10-09 13:11:30

+0

您能否給出更全面的答案? – RonaldN 2014-10-09 13:21:42

+0

你有沒有去... – ToBe 2014-10-09 14:31:28

回答

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';這假定您的數據庫與您正在使用的用戶是同一用戶,並且您希望授予所有數據庫的權限,而不僅限於一個。如果您想要做一些不同的事情,請在以下鏈接中更改*.*

一些相關鏈接:

+0

我的用戶帳號已經擁有了必要的權限,我可以用提供的查詢給你提供查詢,所以感謝你。但是,通過在LOAD DATA <> INFILE之間添加'local'可以解決問題。這是一個瘋狂的猜測,我做了,並且它以某種方式工作。 – RonaldN 2014-10-10 11:12:04