在 SQL 中删除数据库时出错(不能 rmdir './tract',errno: 66)
Posted
技术标签:
【中文标题】在 SQL 中删除数据库时出错(不能 rmdir \'./tract\',errno: 66)【英文标题】:Error dropping database in SQL (can't rmdir './tract', errno: 66)在 SQL 中删除数据库时出错(不能 rmdir './tract',errno: 66) 【发布时间】:2016-08-20 19:15:28 【问题描述】:显然,我正在尝试删除数据库并重新创建它,但它不起作用。
它给了我错误:
mysql>源/Users/divinedavis/downloads/tract_schema.sql;
ERROR 1010 (HY000): 删除数据库时出错(无法 rmdir './tract',errno:66)
ERROR 1010 (HY000):无法创建数据库'TRACT';数据库退出
数据库已更改
DROP DATABASE IF EXISTS TRACT;
CREATE DATABASE TRACT;
USE TRACT;
# # is used for comment in MySQL
#DROP TABLE employee;
CREATE TABLE CUSTOMER (
cust_num integer(10),
cf_name varchar(15),
cm_init varchar (2),
cl_name varchar(15),
c_address varchar (40),
c_uname varchar(15),
primary key (cust_num, cf_name, cl_name)
);
CREATE TABLE INVOICE (
inum integer(10) not null,
i_date date default null,
custf_name varchar(15),
cl_name varchar (15) default null,
tech_uname varchar(15) default null,
lp_num varchar(6) default null,
primary key (inum)
);
#DROP TABLE department; #CASCADE CONSTRAINTS;
CREATE TABLE PAYMENT (
p_type varchar(25) not null,
i_num integer(10),
amount decimal(5,2),
foreign key (i_num) references invoice(inum)
);
#ALTER TABLE employee ADD(
#foreign key (dno) references department(dnumber)
#);
#DROP TABLE dept_locations; #CASCADE CONSTRAINTS;
#DROP TABLE project; #CASCADE CONSTRAINTS;
CREATE TABLE VEHICLE (
model varchar(25) not null,
lp_num varchar (6) not null,
vin varchar(17),
v_year integer(4) not null,
v_trim varchar(10) not null,
tire_size varchar(6),
make varchar(15),
mileage integer(8) not null,
color varchar(20),
cust_name varchar(30),
primary key (lp_num, vin)
);
#DROP TABLE works_on; #CASCADE CONSTRAINTS;
CREATE TABLE TECHNICIAN (
wage decimal(3, 2),
s_name varchar (23),
s_num integer,
city varchar(20),
state varchar (20),
zip integer,
reviews varchar(400),
ratings integer (5),
tf_name varchar(10),
tm_init varchar(2),
tl_name integer (4),
t_uname varchar(15),
t_ssn integer(9),
primary key (t_uname)
);
#DROP TABLE dependent; #CASCADE CONSTRAINTS;
CREATE TABLE CREDENTIALS (
email char(9),
username varchar(15),
user_password char,
ssn integer(9),
primary key (username)
);
CREATE TABLE RT_CALENDAR (
time_of_operation integer(9),
date_of_repair date
);
CREATE TABLE WORKS_ON (
cost decimal(3,2),
hours integer(15),
lp_num char,
t_ssn date
);
【问题讨论】:
【参考方案1】:先用命令找到DB目录
mysql -e "select @@datadir"
它将返回您的数据库目录,例如
+-----------------------+
| @@datadir |
+-----------------------+
| /usr/local/var/mysql/ |
+-----------------------+
转到该目录并使用命令删除数据库
rm -rf DB_name
你也可以使用命令root用户
sudo rm -rf DB_name
【讨论】:
【参考方案2】:看起来您可能丢失了一些文件,这可以解释为什么 mysql 说数据库存在,但由于找不到文件错误,您无法删除它。
系统数据库中有数据库对象的条目,如果某些文件消失(被删除或其他),如果发生这种情况,您不能只是 DROP [数据库]。
查看here 以获得答案。
【讨论】:
他是怎么让这个sh-3.2# ls -la data/test total 0 drwxr-xr-x 3 _mysql wheel 102 Apr 15 12:36 . drwxr-xr-x 11 _mysql wheel 374 Apr 15 12:28 .. -rw-r--r-- 1 _mysql wheel 0 Mar 31 10:19 .empty
弹出来的?【参考方案3】:
请看这篇文章:
how to drop database
tract目录里面好像有一些不是mysql的文件。
【讨论】:
我使用的是 Mac。有没有办法可以通过查找器删除它? 您应该先检查该目录中有哪些文件,然后再将其删除。【参考方案4】:由于某种原因,无法删除数据库文件夹。可能有一些与数据库无关的文件。
要手动删除数据库,请转到 /usr/local/mysql/data/ 并从那里删除 /tract 文件夹。
【讨论】:
小心。您可以删除一些与mysql无关的重要文件。以上是关于在 SQL 中删除数据库时出错(不能 rmdir './tract',errno: 66)的主要内容,如果未能解决你的问题,请参考以下文章
删除数据库时出错(不能 rmdir './someDB/', errno: 17)
MySQL:删除数据库时出错(errno 13;errno 17;errno 39)