Jak usunąć bazę danych mysql za pomocą polecenia powłoki


80

Używam pylonów i sqlalchemy. Stale aktualizuję pliki schematów oraz usuwam i odtwarzam bazę danych, aby można było stworzyć nowy schemat.

Za każdym razem robię to, otwierając MySql Query Browser, logując się i usuwając bazę danych / schemat.

Jak usunąć dokładne polecenia powłoki bazy danych / schematu MySQL w systemie Linux w systemie Ubuntu Linux?


Działa to na każdym systemie operacyjnym, nie tylko na Linuksie
— astroanu

Odpowiedzi:


140

Wypróbuj następujące polecenie:

mysqladmin -h[hostname/localhost] -u[username] -p[password] drop [database]

7
Twoje hasło będzie dostępne dla każdego innego użytkownika w systemie. ps aux. Rozważ użycie .my.cnfzamiast tego.
— gahooa,

Jestem nowicjuszem w skryptach powłoki, ale dla tych z Was, którzy znaleźli to, szukając metody na upuszczenie i utworzenie bazy danych z wnętrza skryptu, ta metoda zadziałała.
— kyle

jeśli chcesz samemu się przekonać bez logowania, czy rzeczywiście twoja baza danych została zniszczona, mam ochotę mysqlshow -u [username] -p[Password]. Możesz nawet grep dla bazy danych mysqlshow -u [username] -p[password] | grep [database].
— xpros

Na pewno bez spacji między -u a nazwą użytkownika?
— AmazingTurtle

Czy istnieje sposób na usunięcie wszystkich baz danych za pomocą jednego polecenia zamiast zapisywania polecenia dla każdej bazy danych?
— Aitazaz Khan

37

Ogólnie rzecz biorąc, możesz przekazać dowolne zapytanie mysqlz powłoki za pomocą opcji -e.

mysql -u username -p -D dbname -e "DROP DATABASE dbname"

5
Twoje hasło będzie dostępne dla każdego innego użytkownika w systemie. ps aux. Rozważ użycie .my.cnfzamiast tego.
— gahooa

3
A może po prostu zanotuj, że dotyczy to tylko lokalnego środowiska programistycznego, w którym jesteś jedynym użytkownikiem.
— Elijah Lynn

4
Flaga -D nie jest potrzebna do upuszczenia bazy danych. Powinno wystarczyć z:mysql -uuser -ppass -e "DROP DATABASE dbname"
— dani24

26

Jeśli jesteś zmęczony wpisywaniem hasła, utwórz plik (chmod 600) ~/.my.cnfi umieść w nim:

[client]
user = "you"
password = "your-password"

Ze względu na rozmowę:

echo 'DROP DATABASE foo;' | mysql

2
chociaż jest to środowisko programistyczne, naprawdę nie martwiłem się zbytnio o hasło widoczne dla innych. Bardzo podoba mi się Twój pomysł .my.cnf. +1 do pomysłu

1
W przypadku skryptu automatycznego druga część odpowiedzi jest najlepsza. Wielkie dzięki.
— dasm

13

Inny odpowiedni sposób:

$ mysql -u you -p
<enter password>

>>> DROP DATABASE foo;

To w zasadzie to samo, co on robił.
— Scottie T,

4
Zilustrowanie możliwości w wierszu poleceń nie gwarantuje odrzucenia głosu. Używał przeglądarki zapytań MySql. Nie do końca to samo.
— gahooa

Ale stwierdzenie problemu jasno stwierdza, że ​​chce on „polecenia powłoki”.
— iankit

10

Nie ma potrzeby mysqladmin:

po prostu użyj linii poleceń mysql

mysql -u [username] -p[password] -e 'drop database db-name;'

Spowoduje to wysłanie polecenia drop, chociaż nie podałbym hasła w ten sposób, ponieważ zostanie ono ujawnione innym użytkownikom systemu przez ps aux


1

MySQL wycofał polecenie usuwania bazy danych z powłoki klienta mysql. Aby usunąć bazę danych, musisz użyć mysqladmin.


To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienie, zostaw komentarz pod jego postem - zawsze możesz komentować własne posty, a gdy zdobędziesz wystarczającą reputację , będziesz mógł skomentować każdy post .
— Skynet

Nie odpowiada bezpośrednio na pytanie, ponieważ pytanie jest zbyt niejasne.
— Ilija

1

Możesz usunąć bazę danych bezpośrednio jako:

$ mysqladmin -h [host] -u [użytkownik] -p drop [ nazwa_bazy_danych ]

[Wprowadź hasło]

Czy naprawdę chcesz porzucić bazę danych „bez włosów” [t / N]: y


0
[root@host]# mysqladmin -u root -p drop [DB]

Enter password:******

Nie sądzę, aby to ujawniło hasło innym użytkownikom serwera, jak robi to wiele innych odpowiedzi; zamiast tego użytkownik jest proszony o to po wejściu użytkownika. Prawdopodobnie ludzie nie zdawali sobie z tego sprawy, kiedy zanegowali prawdopodobnie dwie najlepsze odpowiedzi!
— Bardzo nieregularne
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.