在SQL中删除数据库时出错(不能rmdir'./tract',错误号:66)

时间:2016-04-26 19:10:08

标签: mysql sql macos

显然,我试图删除数据库并再次创建它,但它无法正常工作。

它为我提供了错误

  

的MySQL> source /Users/divinedavis/downloads/tract_schema.sql;

     

ERROR 1010(HY000):丢弃数据库时出错(无法rmdir './ tract',错误号码

     

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

4 个答案:

答案 0 :(得分:2)

请看一下这篇文章:

how to drop database

似乎在目录中有一些不是mysql文件。

答案 1 :(得分:2)

看起来你可能丢失了一些文件,这可以解释为什么mysql说db存在,但由于找不到文件错误你无法删除它。

系统数据库中有数据库对象的条目,如果某些文件消失(被删除或其他什么),如果发生这种情况,你不能只是DROP [数据库]。

检查here是否有答案。

答案 2 :(得分:1)

首先使用命令

查找DB目录
mysql -e "select @@datadir"

它将返回您的数据库目录,例如

+-----------------------+
| @@datadir             |
+-----------------------+
| /usr/local/var/mysql/ |
+-----------------------+

转到该目录并使用命令

删除数据库
rm -rf DB_name

您也可以使用命令

来root用户
sudo rm -rf DB_name

答案 3 :(得分:0)

由于某种原因,无法删除数据库文件夹。可能存在一些与数据库无关的文件。

要手动删除数据库,请转至/ usr / local / mysql / data /并从那里删除/ tract文件夹。