2010-01-12 18 views
69

Używam pylonów i sqlalchemy. Ciągle aktualizuję pliki schematów i usuwam i odtwarzam bazę danych, aby można było utworzyć nowy schemat.Jak usunąć bazę danych mysql za pomocą polecenia powłoki

Za każdym razem, gdy to robię, otwierając przeglądarkę zapytań MySQL i zaloguj się i usuń bazę danych/schemat.

Jak usunąć komendy powłoki linuksowej bazy danych MySQL db/schema w systemie Ubuntu Linux?

+0

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

Odpowiedz

120
mysqladmin -u[username] -p[password] drop [database] 
+11

dzięki Alex. Dodałem -f, aby wymusić usunięcie. –

+5

Twoje hasło będzie dostępne dla każdego innego użytkownika w systemie. 'ps aux'. Rozważ użycie '.my.cnf'. – gahooa

+0

Jestem początkującym skryptem powłoki, ale dla tych z was, którzy znaleźli to, poszukując metody na upuszczenie i utworzenie bazy danych z wnętrza skryptu, ta metoda działała dla mnie. – kyle

13

Inny odpowiedni sposób:

$ mysql -u you -p 
<enter password> 

>>> DROP DATABASE foo; 
+0

Zasadniczo to samo, co robił. –

+4

Zilustrowanie możliwości w linii poleceń nie uzasadnia głosowania w dół. Używał MySql Query Browser. Nie do końca to samo. – gahooa

+0

Ale instrukcja problemu jasno stwierdza, że ​​chce "polecenia powłoki". – iankit

22

Jeśli jesteś zmęczony wpisywać hasła, należy utworzyć (chmod 600) złożyć ~/.my.cnf, i umieścić w nim:

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

Dla ze względu na konwersację:

echo 'DROP DATABASE foo;' | mysql 
+2

Chociaż jest to środowisko programistyczne, naprawdę nie martwię się o hasło widoczne dla innych. Bardzo podoba mi się twój pomysł .my.cnf. +1 do pomysłu –

+1

Dla automatycznego skryptu druga część odpowiedzi jest najlepsza. Wielkie dzięki. –

+0

wow, dziękuję za to, nie wiedziałem, że to działa :) –

24

Ogólnie rzecz biorąc, możesz przekazać zapytanie do mysql z powłoki z opcją -e.

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

Twoje hasło będzie dostępne dla każdego innego użytkownika w systemie. 'ps aux'. Rozważ użycie '.my.cnf'. – gahooa

+3

A może po prostu zanotuj, że jest to tylko dla lokalnego środowiska programistycznego, w którym jesteś jedynym użytkownikiem. –

+2

Flaga -D nie jest wymagana do DROP bazy danych. Powinno wystarczyć: 'mysql -uuser -ppass -e" DROP DATABASE dbname "' – dani24

7

Nie potrzeba mysqladmin:

prostu wykorzystać mysql linii poleceń

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

Ten wyśle ​​komendy drop choć nie zdać hasło w ten sposób, jak to będzie narażony do innych użytkowników systemu poprzez ps aux

0
[[email protected]]# mysqladmin -u root -p drop [DB] 

Enter password:****** 
+0

Nie sądzę, że to ujawnia hasło innym użytkownikom na serwerze, tak jak wiele innych odpowiedzi; zamiast tego użytkownik jest proszony o to po wprowadzeniu użytkownika. Być może ludzie nie zdawali sobie z tego sprawy, gdy odrzucili dwie najlepsze odpowiedzi! –

2

MySQL przestał usuwać komendę bazy danych z powłoki klienta mysql. Musisz użyć mysqladmin, aby usunąć bazę danych.

+0

Nie zapewnia to odpowiedzi na pytanie. Aby skrytykować lub poprosić o wyjaśnienie od autora, zostaw komentarz pod swoim postem - zawsze możesz komentować swoje posty, a gdy już masz wystarczającą [reputację] (http://stackoverflow.com/help/whats-reputation), być w stanie [komentować dowolny wpis] (http://stackoverflow.com/help/privileges/comment). – Skynet

+0

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

1

można usunąć bazę danych bezpośrednio jako:

$ mysqladmin -h [adres] -u [user] -p upuść [database]

[Enter Password]

Czy na pewno chcesz usunąć bazę danych "bez włosów" [y/N]: y

Powiązane problemy