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

在 Mac OS 上的 MySQL Workbench 上删除数据库时出现错误 1010

一天一个Linux基础命令之目录管理类命令rmdir

一天一个Linux基础命令之目录管理类命令rmdir

一天一个Linux基础命令之目录管理类命令rmdir