Błąd upuszczania bazy danych (nie można rmdir '.test\', errno: 17)

Zasadniczo uczono mnie, jak utworzyć hasło roota za pomocą polecenia" mysqladmin-u root-p password", zostało to zrobione przez edytor poleceń windows. Następnym procesem było wyświetlenie domyślnych baz danych (info. schema, mysql i test), który został osiągnięty za pomocą "Pokaż bazy danych;"

Ale zgodnie z książką, musieliśmy usunąć zbędny plik testowy i wyskakuje następujący błąd:

Błąd zrzucania bazy danych (nie można rmdir '.test\', errno: 17)

Użyte polecenie To DROP DATABASE test;

Używam MYSQL i PHPMYADMIN. Jakaś pomoc, jak upuścić plik bez błędów?

Author: Charlie Brumbaugh, 2011-01-03

17 answers

Baza danych jest reprezentowana przez katalog w katalogu danych (Zwykle /var/lib/mysql), a katalog jest przeznaczony do przechowywania danych tabeli.

Instrukcja DROP DATABASE usunie wszystkie pliki tabeli, a następnie usunie katalog, który reprezentował bazę danych. Nie usunie jednak plików spoza tabeli, co uniemożliwia usunięcie katalogu.

MySQL wyświetla komunikat o błędzie, gdy nie można usunąć katalogu

Naprawdę można upuścić bazę danych ręcznie usuwając pozostałe pliki w katalogu bazy danych, a następnie sam katalog.

 170
Author: Shakti Singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-09 07:07:29

Natknąłem się na ten sam problem przy nowej instalacji mysql 5.5 na Macu. Próbowałem zrzucić schemat testowy i dostałem komunikat errno 17. errno 17 to błąd zwracany przez niektóre funkcje systemu posix, wskazujący, że plik istnieje tam, gdzie nie powinien. W katalogu danych Znalazłem dziwny plik ".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

Raz rm ' D The .pusty plik, polecenie drop database powiodło się.

Nie wiem gdzie .pusty plik pochodzi z; jak wspomniano, była to nowa instalacja mysql. Być może coś poszło nie tak w procesie instalacji.
 37
Author: Beel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-15 16:47:48

Przejdź do datadir dla instalacji mysql i rm bazy danych ręcznie. Może być

/usr/local/var/mysql

Wtedy,

rm -R <Your DB name>

Aby sprawdzić datadir dla Twojej instalacji,

vim the mysql.server file and find it there.
 36
Author: Nerve,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-16 10:50:44

Dla phpmyadmin , Przejdź do xampp\mysql\data i po prostu usuń folder bazy danych. Zadziałało na mnie !!

 24
Author: Floccinaucinihilipilification.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-30 11:47:56

Jeśli jest to XAMPP, wykonaj następujące czynności:

cd /opt/lampp/var/mysql;
sudo su;
rm -rf test;
Mam nadzieję, że to pomoże.
 13
Author: Nasif Md. Tanjim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-15 06:49:02

Właśnie natknąłem się na ten problem z WAMP i phpMyAdmin, który jest z nim związany. Aby usunąć bazę danych i usunąć błąd. Wszedłem do C:\wamp\bin\mysql\mysql5.5.24\data\ i usunąłem folder dla danej bazy danych.

Potem odświeżyłem stronę w phpMyAdmin, A bazy danych już nie było.

 8
Author: J86,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-28 17:10:19

Aby dodać do odpowiedzi do tej pory: w Windows 10 Pliki Danych są przechowywane tutaj...

C:\ProgramData\MySQL\MySQL Serwer [m. n] \ data

W Twojej bazie danych będą Katalogi dla każdego schematu. Będziesz chciał wejść do schematu, który próbujesz upuścić, ręcznie usuń zbędne pliki, a następnie spróbuj ponownie użyć polecenia upuść.

Wszelkie zmiany workbench w bazie danych zostaną zapisane w tej lokalizacji. Na przykład, miałem ten błąd po reverse engineering ćwiczenia na jednej z moich baz danych i zapisywanie zmian, które są przechowywane w .plik mwb w tej lokalizacji.

 4
Author: IqbalHamid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-14 13:01:14

Możesz usunąć dane z katalogu sql.

Dla mnie używałem AMPPS na windows 10. Poszedłem do katalogu instalacyjnego AMPPs. dla mnie było :

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

Ponieważ mam go zainstalowany na moim drugim dysku.

Następnie odśwież swojego klienta SQL, a zobaczysz, że go nie ma.

 1
Author: moeiscool,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 19:19:32

Być może będziesz musiał sprawdzić dwie rzeczy.

1- Database Foleder ' s permission baza danych, którą chcesz usunąć, musi mieć tego samego właściciela co proces mysql.

2- Katalog musi być pusty Przejdź do katalogu danych mysql i sprawdź, czy katalog jest pusty

Następnie podłącz swój mysql cli i uruchom ponownie polecenie Drop database.

 1
Author: Mansur Ali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-05 12:18:55

Przejdź przez to i usuń odpowiednie pliki pamięci podręcznej w wybranym db, a następnie po upuszczeniu bazy danych

Najpierw znajdź swój katalog danych MySQL zawierający wybrany DB

Linux

  • Otwórz plik konfiguracyjny MySQL: less / etc / my.cnf
  • Szukaj wyrażenia "datadir": / datadir

  • Jeśli istnieje, podświetli linię, która brzmi: datadir = [Ścieżka]

  • Można również ręcznie szukać za tę linię. Zazwyczaj można go znaleźć w nagłówku sekcji [mysqld] , ale niekoniecznie musi być tam znaleziony.

  • Jeśli ta linia nie istnieje, wtedy MySQL będzie domyślnie ustawione na: / var/lib / mysql.

Okna 1. Otwórz plik konfiguracyjny MySQL w Notatniku: my.ini

My.ini będzie znajdować się w folderze programu MySQL, który będzie wszędzie tam, gdzie został zainstalowany. Jeśli nie zainstalowałeś MySQL, użyj systemu Windows funkcja "szukaj", aby wyszukać mój.ini. Można go również ręcznie wyszukać, przeglądając stronę [drive]:\Program Files\MySQL\MySQL Server 5.5.

  1. Wykonaj wyszukiwanie w notatniku, aby znaleźć termin "datadir".

  2. Jeśli istnieje, podświetli linię, która brzmi: datadir = [Ścieżka]

  3. Możesz również ręcznie wyszukać tę linię. Zazwyczaj można go znaleźć w nagłówku sekcji [mysqld], ale niekoniecznie musi być znaleziony tam.

  4. Jeśli ta linia nie istnieje, prawdopodobnie znajdziesz ją pod [drive]:\ProgramData\MySQL\MySQL Server 5.5\data.

Uwaga: folder "ProgramData" może być ukryty. Może być konieczne wpisanie jawnej ścieżki do Windows Explore

 1
Author: Mewan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-11 04:54:26
mysql -s -N -username -p information_schema -e 'SELECT Variable_Value FROM GLOBAL_VARIABLES WHERE Variable_Name = "datadir"'

Polecenie wybierze wartość tylko z wewnętrznej bazy danych MySQL information_schema i wyłączy tabelaryczne wyjścia i nagłówki kolumn.

Wyjście na Linuksa [mój wynik]:

/var/lib/mysql

Lub

mysql> select @@datadir;

NA MYSQL CLI

A następnie

cd /var/lib/mysql && rm -rf test/NOTEMPTY

zmień ścieżkę na podstawie wyniku

 1
Author: Jamil Noyda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-16 13:27:40

W moim przypadku nie widziałem żadnych tabel pod moją bazą danych na phpMyAdmin używam Wamp server ale kiedy sprawdziłem katalog pod C:\wamp\bin\mysql\mysql5.6.12\data znalazłem to employed.ibd Kiedy ręcznie usunąłem ten plik byłem w stanie drop bazy danych z phpMyAdmin płynnie bez żadnych problemów.

 0
Author: Yousef Altaf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 09:42:07

W moim przypadku problemem był szczątkowy plik zrzutu w katalogu bazy danych. Ten plik został prawdopodobnie wygenerowany podczas testu skryptu zapasowego, nad którym pracowałem. Po ręcznym usunięciu pliku mogłem następnie upuścić bazę danych.

 0
Author: Ranieri Machado,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-04 14:42:33

Miałem ten sam problem (mysql 5.6 na mac) z ' can ' t rmdir..'- błędy podczas upuszczania baz danych. Pozostawienie pustego katalogu bazy danych nie jest możliwe do pozbycia się. Dzięki @Framework i @Beel za rozwiązania.

Najpierw usunąłem katalog db z terminala w (/Applications/XAMPP/xamppfiles/var / mysql).

Dla dalszych spadków db, usunąłem również pusty plik testowy. W moim przypadku plik nazywał się NOTEMPTY, ale nadal zawiera 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 najpierw a potem

sudo rm -rf test/NOTEMPTY

Żadnych problemów z upuszczaniem baz danych po tym

 0
Author: user3857472,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-07 13:04:34

Po prostu przejdź do katalogu danych w moim przypadku ścieżka to "wamp \ bin \ mysql \ mysql5.6. 17\data" tutaj zobaczysz folder wszystkich baz danych po prostu usuń ten folder bazy danych db automatycznie spadnie:)

 0
Author: sms247,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-20 06:06:08

Napotkałem ten problem i kiedy sprawdziłem katalog bazy danych, było kilka plików exp (Pliki ibd i frm zostały usunięte). Lista plików w celu sprawdzenia ich atrybutów (ponieważ właściciel miał już uprawnienia rw na plikach)

lsattr *.exp
-------------e-- foo.exp
-------------e-- bar.exp

Strona Man mówi

       The  'e'  attribute  indicates that the file is using extents for mapping the blocks on disk.
       It may not be removed using chattr(1).

Możesz rzeczywiście chattr -e Te pliki, ale mysql nadal nie pozwoli ci upuścić bazy danych. Usunięcie plików za pomocą rm pozwala jednak na usunięcie bazy danych.

 0
Author: dland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-24 13:56:31

Dzieje się tak, ponieważ możesz skopiować folder bazy danych /var / lib / mysql z innego serwera na swój serwer. Ale nie skopiowałeś tych plików: / var / lib / mysql / ib_buffer_pool / var / lib / mysql / ibdata1 / var / lib / mysql / ib_logfile0 / var / lib / mysql / ib_logfile1 / var / lib / mysql / ibtmp1 Możesz więc utworzyć nową bazę danych i tabele, które możesz upuścić, ale nie możesz upuścić baz danych, które skopiowałeś z innego serwera i nie możesz również eksplorować tej samej bazy danych, którą skopiowane z innego serwera. Więc skopiowałem również te pliki: ib_buffer_pool, ibdata1, ib_logfile0,ib_logfile1, ibtmp1 po tym wszystkim wszystko działało.

 0
Author: Prakash Lakhara,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-16 10:17:49