2013-07-29 44 views
0

當我嘗試在CMD命令:mysql source命令給出錯誤2和錯誤17?

SOURCE D:\books.sql; 

我得到這個錯誤:

錯誤: 無法打開文件 'd:\ books.sql;',錯誤:2

我在網上搜索了這個,到目前爲止,我發現這個錯誤不知何故意味着沒有這樣的文件或目錄! 但我很確定我的文件就在那裏! 謝謝。

這裏的books.sql裏面的代碼:

DROP DATABASE IF EXISTS books; 

CREATE DATABASE books; 

USE books; 

CREATE TABLE Authors 
(
    AuthorID int NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    FirstName varchar(30) NOT NULL, 
    LastName varchar(30) NOT NULL 
)     ; 
CREATE TABLE Titles 
(
    ISBN varchar(20) NOT NULL PRIMARY KEY, 
    Title varchar(100) NOT NULL, 
    EditionNumber int NOT NULL, 
    Copyright varchar(4) NOT NULL 
)    ; 

CREATE TABLE AuthorISBN 
(
    AuthorID int NOT NULL, 
    ISBN varchar(20) NOT NULL, 
    FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID), 
    FOREIGN KEY (ISBN) References Titles(ISBN) 
)   ; 

INSERT INTO Authors (FirstName,LastName) VALUES ('Paul','Deitel')   ; 
INSERT INTO Authors (FirstName,LastName) VALUES ('Harvey','Deitel')  ; 
INSERT INTO Authors (FirstName,LastName) VALUES ('Abbey','Deitel')  ; 
INSERT INTO Authors (FirstName,LastName) VALUES ('Michael','Morgano') ; 
INSERT INTO Authors (FirstName,LastName) VALUES ('Eric','Kern')  ; 


INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132152134','Visual Basic 2010 How to Program',5,'2011')   ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132152134')  ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132152134') ; 

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132151421','Visual C# 2010 How to Program',4,'2011') ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132151421')  ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132151421')  ; 

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132575663','Java How to Program',9,'2012') ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132575663')            ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132575663')          ; 

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132662361','C++ How to Program',8,'2012')  ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132662361')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132662361')             ; 

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132404168','C How to Program',6,'2010')  ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132404168')            ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132404168')          ; 

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('013705842X','iPhone for Programmers: An App-Driven Approach',1,'2010')  ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'013705842X')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'013705842X')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (3,'013705842X')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (4,'013705842X')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (5,'013705842X')             ; 

INSERT INTO Titles (ISBN,Title,EditionNumber,Copyright) VALUES ('0132121360','Android for Programmers: An App-Driven Approach',1,'2012')  ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (1,'0132121360')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (2,'0132121360')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (3,'0132121360')             ; 
INSERT INTO AuthorISBN (AuthorID,ISBN) VALUES (4,'0132121360')             ; 

所以在我測試了它沒有分號,並在此中間,結果如下:

ERROR 1010 (HY000): Error dropping database (can't rmdir '.\books\', errno: 17) 

似乎出現此錯誤,因爲1號線 現在該做什麼?

+0

更好地發佈文件中的代碼... – alfasin

+0

我不認爲這是關於代碼。我從書中抓取了代碼。但要確保我會添加它。謝謝。 – saeed

+0

你是否從命令提示符運行它? – alfasin

回答

1

由於您自己回答了「源代碼問題」,因此我會嘗試幫助第二部分。

內部mysql數據庫由一個目錄表示,並在該目錄內表示數據庫文件。現在當你刪除一個數據庫時,mysql首先刪除這些文件,並且作爲最後一步該目錄將被刪除。

現在有兩種情況可以導致錯誤17:

  1. 沒有足夠的權限在該目錄
  2. 剩餘的文件,這不是由MySQL

所以我會做以下管理步驟:首先檢查您在該目錄上的權限,如果您確定它們是正確的,請嘗試再次運行您的示例。如果這不起作用,請檢查目錄path/to/mysql/books以查找與mysql無關的文件並手動刪除它們。在此之後,您應該能夠執行DROP DATABASE IF EXISTS books;命令。

+0

謝謝是的,這是解決方案。我試圖給我的用戶授予drop命令,但不知何故,我做錯了,沒有注意到! – saeed