mysql source 命令给出错误 2 和错误 17? [复制]
Posted
技术标签:
【中文标题】mysql source 命令给出错误 2 和错误 17? [复制]【英文标题】:mysql source command gives error 2 and error 17? [duplicate] 【发布时间】:2013-07-28 18:42:52 【问题描述】:当我在 cmd 中尝试这个命令时:
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 行而发生此错误。 现在做什么?
【问题讨论】:
最好把代码贴在文件里... 我认为这与代码无关。我从一本书中获取了代码。但要确保我会添加它。谢谢。 你是从命令提示符运行它吗? 如果你的意思是“source books.sql”是的。我从 cmd 运行它(我在第一行提到过)。 @saeed 在您提到 book.sql 和 books.sql 的问题中您确定您使用的文件名正确吗? 【参考方案1】:由于您已经自己回答了“源问题”,因此我将尝试帮助您完成第二部分。
在内部,mysql 数据库由一个目录表示,在该目录中是数据库文件。现在,当您删除数据库时,mysql 首先删除文件,最后一步将删除目录。
现在有两种情况会导致错误 17:
-
对该目录的权限不足
未被mysql管理的剩余文件
所以我会执行以下步骤:首先检查您对该目录的权限,如果您确定它们没问题,请尝试再次运行您的示例。如果这不起作用,请检查目录 path/to/mysql/books
是否有任何与 mysql 无关的文件并手动删除它们。在此之后您应该能够执行DROP DATABASE IF EXISTS books;
命令。
【讨论】:
谢谢,这就是解决方案。我试图向我的用户授予 drop 命令,但不知何故我做错了并且没有注意到!以上是关于mysql source 命令给出错误 2 和错误 17? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
mysql配置文件夹错误:在安装mysql 5.6.19 时运行cmake命令是出现CMake Error: The source directory does not appear to conta