2010-01-12 15 views
18

Ho usato il seguente sytanxcome far cadere banca dati

drop database filmo; 

e ottenuto il seguente errore:

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

tutte le idee ..

+0

Qual è il motore di database che si sta utilizzando? Non è chiaro dalla tua domanda. – gyurisc

+0

AskAboutGadgets.com: vedere i tag. – tanerkuc

+0

@enbuyukfener: visualizza la cronologia delle modifiche. – Jon

risposta

23

E 'significa che ci sono file in quella cartella non connesse a MySQL. Un altro problema, anche se ne dubito, sono permessi insufficienti. Puoi cancellare quella directory dal filesystem.

+1

Ho avuto lo stesso errore - e in effetti c'era un file in quella directory - dopo averlo rimosso la cancellazione ha funzionato. – zby

0

hai i permessi di scrittura su tale directory (e il genitore)? potrebbe essere necessario rendere ricorsivamente la directory scrivibile (scheda di sicurezza in Windows o chmod in nix) ed eliminare tutti i file non-db come "Thumbs.db"

11

Si è verificato lo stesso errore. Questo ha risolto il tutto per me in Ubuntu 10.04:

stop mysql

rm -rf /var/lib/mysql/XXXXX

start mysql

dove xxxxx è il nome del database incriminato.

+0

Ha lavorato per me su un MAC ... mysql> rilascia database DB_NAME; ERRORE 1010 (HY000): errore di database cadere (non può RMDIR './DB_NAME', errno: 66) 1), che mysql ->/usr/local/mysql/bin/mysql 2) Andare nella cartella DB: cd/usr/local/mysql/data/ 3) Elimina la cartella DB di DB con problema (in questo caso: "DB_NAME"). – xgMz

+0

È esattamente il datadir per la tua installazione di mysql dove troverai la directory XXXXX. – Nerve

+0

Ha funzionato per me su Ubuntu 12.04/MySQL 5.5.38 – DanH

1

ho cambiato le autorizzazioni sulla cartella mysql (Windows Server c:\xampp\mysql) e sta lavorando ora, ho creato e caduto database senza alcun errore.

7

sudo rm-rf/var/lib/mysql/db_production

dove db_production è il nome del database

ricordarsi di utilizzare "sudo".

0

Ho riscontrato questo problema e sembra che riguardi le autorizzazioni dell'utente mysql. provare a farlo da utente root se non lavoro usare questo comando come root per il permesso goccia grande per l'utente:

grant drop 
execute on *.* to 'your-user-name'@'user-ip'; 
1

Questo è quello che faccio su Mac OS X Mavericks:

  1. Stop the servizio MySQL
  2. Rimuovere la directory in /usr/local/mysql/data
1

1) rm -rf /var/lib/mysql/data/*** mantenere il dir di dati, rm il contenuto dei dati/

2) utilizzano

mysql -uxxx -pyyy 
    $ drop database data; 

allora che sarebbe stato ok per ricreare ancora una volta il database di dati. speriamo che possa essere d'aiuto, Attenzione, direct remove data dir è inutile, qualunque sia il riavvio di mysqld o meno.

-2
drop database <database_name>; 
0

Ecco un modo per simulare il vostro errore

1.Creare una directory su MySQL directory dei dati

mkdir /data/mysql/data/filmo 

2.check l'ultimo elemento

[[email protected]]# ls -ltrh /data/mysql/data/ 
总用量 173M 
-rw-rw---- 1 mysql mysql 48M 4月 17 11:00 ib_logfile1 
drwx------ 2 mysql mysql 4.0K 4月 17 11:00 performance_schema 
drwx------ 2 mysql mysql 4.0K 4月 17 11:00 mysql 
-rw-rw---- 1 mysql mysql 56 4月 18 06:01 auto.cnf 
drwxr-xr-x 2 root root 4.0K 4月 18 07:25 backup 
-rw-rw---- 1 mysql mysql 19 4月 23 07:29 mysql-bin.index 
-rw-rw---- 1 mysql mysql 5 4月 23 07:29 oldboylinux.pid 
-rw-rw---- 1 mysql mysql 19K 4月 23 07:29 error.log 
-rw-rw---- 1 mysql mysql 76M 4月 23 09:56 ibdata1 
-rw-rw---- 1 mysql mysql 48M 4月 23 09:56 ib_logfile0 
-rw-rw---- 1 mysql mysql 5.9K 4月 23 10:21 mysql-bin.000001 
drwxr-xr-x 2 root root 4.0K 4月 23 10:36 filmo 

3. creare un file di dump in esso

[[email protected]]# mysqldump -uroot -p123456 -B mysql>/data/mysql/data/filmo/dump_file.sql 

4.MySQL crederanno filmo è un database

[[email protected]]# mysql -uroot -p123456 -e"show databases;" 

+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| backup    | 
| filmo    | 
| mysql    | 
| performance_schema | 
+--------------------+ 

5.when I cadere questo "database", ecco il tuo errore

[[email protected]]# mysql -uroot -p123456 -e"drop database filmo;" 
ERROR 1010 (HY000) at line 1: Error dropping database (can't rmdir './filmo/', errno: 17) 
0

Tale errore viene di solito quando si dispone di TABLESPACE sbagliato nel file ibdata1 (che è per il motore innodb) engine in-house memorizza alcune impostazioni all'interno del file ibdata1

se hai recentemente copiato/spostato i tuoi file su un altro server o ho provato a ripristinare quindi dovresti spostare il file ibdata1 e poi puoi cancellare il db. Presumo che tu stia riscontrando problemi come la tabella non esiste e ora eliminando db? se sì, allora ferma il servizio mysql, quindi elimina i file e poi crea di nuovo db, che ti aiuterà. Inoltre qui Questo potrebbe aiutare a [Error Dropping Database (Can't rmdir '.test\', errno: 17)

0

Non so dove ho ottenuto questa risposta da (scuse), ma, anche se simile al precedente, ha l'informazioni aggiuntive su come trovare la directory dei dati di MySQL:

mysql -e "select @@datadir"

questo, suppongo, è generico e restituisce il percorso a MySQL/dati. Se ci si sposta in quella directory (/ comando/MacOS Linux UNIX):

cd path_to_mysql/data

si trova il database che si desidera rimuovere, che da nix può essere fatto da:

sudo rm -rf DB_NAME

su MacOS X (10.9.5) Ho fatto non per bloccare MySQL, ma questo potrebbe differire su altre piattaforme.