2011-01-03 14 views
95

Fondamentalmente, mi è stato insegnato come creare una password di root usando il comando "mysqladmin -u root -p password", questo è stato fatto tutto tramite l'editor di comandi di Windows. Ora, il processo successivo è stato quello di visualizzare i database predefiniti (informazioni, schema, mysql e test) che sono stati ottenuti utilizzando "SHOW DATABASES;"Errore durante l'eliminazione del database (impossibile rmdir '.test ', errno: 17)

Ma secondo il libro, abbiamo dovuto cancellare il file di test ridondante e il seguente errore si apre:

errore Dropping Database (Can not RMDIR '.test \', errno: 17)

Il comando di un uso era DROP DATABASE test;

sto usando MySQL e PHPMYADMIN. Qualsiasi aiuto su come rilasciare il file senza errori?

+0

L'utente MySQL ha sicuramente la proprietà della directory dei dati rilevanti? Aggiornamento –

+0

. Ho creato un nuovo database da PHPMYADMIN e ho usato il comando nell'editor dei comandi, ha funzionato senza scoppiare l'errore questa volta. Edit: Middaparka, davvero non ho ancora toccato quella parte. Non so, per impostazione predefinita, quali sono i permessi. – Sid

+0

Immagino che le nuove versioni di MySQL in realtà non eliminino il database TEST invece provi ad eliminare la cartella "TEST" nella tua directory mysql/bin, è solo un'altra soluzione per questo da aggiungere al tuo processo di apprendimento ..... – amenko

risposta

129

Un database è rappresentato da una directory nella directory dei dati e la directory è destinata alla memorizzazione dei dati della tabella.

L'istruzione DROP DATABASE rimuoverà tutti i file di tabella e quindi rimuoverà la directory che rappresenta il database. Tuttavia, non rimuoverà i file non di tabella, rendendo impossibile la rimozione della directory.

MySQL visualizza un messaggio di errore quando non è possibile rimuovere la directory

si può davvero eliminare manualmente il database rimuovendo i file rimanenti nella directory del database e quindi la directory stessa.

+0

Grazie, Shakti Singh. Ho abbandonato la tabella di 'test' visitando PHPMYADMIN, ma volevo davvero farlo tramite l'editor di comandi. Credo di aver provato a cancellare lo stesso file ancora e ancora, quindi l'errore. Ho creato un nuovo DB e ho inserito il comando DROP DATABASE, ha funzionato! – Sid

+2

Si noti che si può veramente rimuovere la directory solo se il database ha solo tabelle MyISAM – nos

+0

Nel mio caso ho dovuto 'logout' e quindi' login' di nuovo, per vedere il database andato. –

36

Mi sono imbattuto in questo stesso problema su una nuova installazione di mysql 5.5 su un mac. Ho provato a eliminare lo schema di test e ho ricevuto un messaggio errno 17. errno 17 è l'errore restituito da alcune funzioni os di posix che indicano che un file esiste dove non dovrebbe. Nella directory dei dati, ho trovato un file di strano ".empty":

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 

Una volta che il file rm'd .empty, il comando drop database riuscito.

Non so da dove provenisse il file .empty; come notato, questa era una nuova installazione di mysql. Forse qualcosa è andato storto nel processo di installazione.

+1

Questo ha funzionato per me :) Grazie! – Tek

+3

Vedere [MySQL Bug # 62443] (http://bugs.mysql.com/bug.php?id=62443). Questo è un bug MySQL introdotto intorno al 5.5.11 a causa di una limitazione in cmake. Come hai detto, una soluzione alternativa è rimuovere i dati \ test \ .empty –

+2

in Windows per me è stato: C: \ wamp \ bin \ mysql \ mysql5.5.24 \ data \ test \ – SinistraD

22

Per phpMyAdmin, andare a xampp \ mysql \ data e semplicemente eliminare la cartella del database. Ha funzionato per me !!

24

Andare al datadir per l'installazione mysql e recuperare manualmente i database. Può essere

/usr/local/var/mysql 

Poi,

rm -R <Your DB name> 

Per controllare datadir per l'installazione,

vim the mysql.server file and find it there. 
+4

Sto eseguendo linux mint con mysql 5.5 .34-0ubuntu0.13.04.1 e lo memorizzano in/var/lib/mysql. Sono sicuro che è diverso per diverse distro. –

+1

Grazie per avermi fatto sapere dove si trovava la directory !! –

+0

Funziona per me :) – Pupil

7

Ho appena incontrato questo problema con WAMP e la phpMyAdmin che viene con esso. Per rimuovere il database e far scomparire l'errore. Sono entrato in C:\wamp\bin\mysql\mysql5.5.24\data\ e ho eliminato la cartella per il database in questione.

Quindi ho aggiornato la pagina su phpMyAdmin e il database era sparito.

9

Se è XAMPP, procedere come segue:

cd /opt/lampp/var/mysql; 
sudo su; 
rm -rf test; 

Spero che questo aiuti.

0

Nel mio caso non ho visto tutte le tabelle sotto la mia base di dati su phpMyAdmin sto usando Wamp server ma quando ho controllato la directory sotto C:\wamp\bin\mysql\mysql5.6.12\data Ho trovato questo employed.ibd quando ho cancellato questo file manualmente ho potuto drop il database da phpMyAdmin senza problemi senza problemi.

0

Nel mio caso il problema era un file di dump residuo nella directory del database. Quel file è stato probabilmente generato durante un test di script di backup su cui stavo lavorando. Una volta cancellato manualmente il file, potrei quindi rilasciare il database.

0

Ho avuto lo stesso problema (mysql 5.6 su mac) con errori 'can not rmdir ..'- quando si rilasciano database. Lasciare una directory del database vuota non è possibile sbarazzarsi di. Grazie a @Framework e @Beel per le soluzioni.

Ho prima eliminato la directory db dal Terminale in (/ Applicazioni/XAMPP/xamppfiles/var/mysql).

Per ulteriori db gocce, ho anche eliminato il file di test vuoto. Nel mio caso il file è stato chiamato notempty ma ancora contenente 0:

sudo ls -al test 
total 0 
drwxrwx--- 3 _mysql _mysql 102 Mar 26 16:50 . 
drwxrwxr-x 18 _mysql _mysql 612 Apr 7 13:34 .. 
-rw-rw---- 1 _mysql _mysql 0 Jun 26 2013 NOTEMPTY 

Chmod prima e poi

sudo rm -rf test/NOTEMPTY 

Non riesce a spostare i database dopo che

0

basta andare alla directory dei dati nel mio caso percorso è "wamp \ bin \ mysql \ mysql5.6.17 \ data" qui vedrai tutta la cartella dei database che elimina questa tua cartella di database il db verrà automaticamente abbassato :)

0

Puoi cancellare i dati nella directory sql.

Per me stavo usando AMPPS su Windows 10. Sono passato alla directory di installazione di AMPPs. Per me è stato:

D:\Program Files (x86)\Ampps\mysql\data 

perché ho installato sul mio disco secondario.

Quindi aggiorna il tuo client SQL e vedrai che non c'è più.

0

Potrebbe essere necessario controllare due cose.

1- Database autorizzazione Foleder Il database che si desidera eliminare deve avere lo stesso proprietario del processo mysql.

2- directory deve essere vuota Goto la directory dati di MySQL e verificare che directory è vuota

Dopo di che collegare nuovamente la CLI mysql e il comando drop database run.

0

Solo per aggiungere le risposte finora: In Windows 10, i file di dati vengono mantenuti qui ...

C: \ ProgramData \ MySQL \ MySQL Server [M.n] \ Dati

Ci saranno le directory per ogni schema nel database. Dovrai andare all'interno dello schema che stai cercando di eliminare, eliminare manualmente tutti i file superflui, quindi provare di nuovo il comando drop.

Qualsiasi modifica del banco di lavoro a un database verrà memorizzata in questa posizione. Ad esempio, ho riscontrato questo errore in seguito a un esercizio di reverse engineering su uno dei miei database e al salvataggio delle modifiche che vengono memorizzate in un file .mwb in questa posizione.

Problemi correlati