쉘 명령을 통해 mysql 데이터베이스를 삭제하는 방법


80

나는 pylons와 sqlalchemy를 사용합니다. 스키마 파일을 지속적으로 업데이트하고 데이터베이스를 삭제하고 다시 생성하여 새 스키마를 만들 수 있습니다.

이 작업을 수행 할 때마다 MySql 쿼리 브라우저를 열고 로그인하고 데이터베이스 / 스키마를 삭제합니다.

Ubuntu Linux에서 Linux 쉘 명령을 통해 MySQL db / schema를 삭제하려면 어떻게해야합니까?


뿐만 아니라 리눅스 어떤 OS에이 작품
astroanu

답변:


140

다음 명령을 시도하십시오.

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

7
시스템의 다른 사용자는 암호에 액세스 할 수 있습니다. ps aux. .my.cnf대신 사용을 고려하십시오 .
gahooa

나는 쉘 스크립팅에 초보자이지만 스크립트 내부에서 db를 삭제하고 만드는 방법을 찾는 사람들에게는이 방법이 저에게 효과적이었습니다.
kyle

실제로 데이터베이스가 날아간 경우 로그인하지 않고 직접 확인하려면 mysqlshow -u [username] -p[Password]. 데이터베이스에 대한 grep도 가능합니다 mysqlshow -u [username] -p[password] | grep [database].
xpros 2013

-u와 사용자 이름 사이에 공백이 없습니까?
AmazingTurtle 2016

각 DB에 대한 명령을 작성하는 대신 단일 명령으로 모든 데이터베이스를 삭제하는 방법이 있습니까?
Aitazaz Khan

37

일반적으로 mysql-e 옵션 을 사용 하여 쉘에서 모든 쿼리를 전달할 수 있습니다 .

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

5
시스템의 다른 사용자는 암호에 액세스 할 수 있습니다. ps aux. .my.cnf대신 사용을 고려하십시오 .
gahooa

3
또는 이것이 유일한 사용자 인 로컬 개발 환경에만 해당된다는 점을 메모 해 두십시오.
Elijah Lynn

4
-D 플래그는 데이터베이스를 DROP하는 데 필요하지 않습니다. 다음으로 충분해야합니다.mysql -uuser -ppass -e "DROP DATABASE dbname"
dani24

26

암호를 입력하는 데 지쳤다면 (chmod 600) 파일을 만들고 입력하십시오 ~/.my.cnf.

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

대화를 위해 :

echo 'DROP DATABASE foo;' | mysql

2
개발 환경이긴하지만 다른 사람이 볼 수있는 비밀번호에 대해서는별로 걱정하지 않습니다. 나는 당신의 .my.cnf 아이디어를 매우 좋아합니다. 아이디어에 +1

1
자동 스크립트의 경우 답변의 두 번째 부분이 가장 좋습니다. 감사합니다.
dasm

13

또 다른 적절한 방법 :

$ mysql -u you -p
<enter password>

>>> DROP DATABASE foo;

그것은 기본적으로 그가했던 것과 동일합니다.
Scottie T

4
명령 줄에서 가능성을 설명한다고해서 반대표가 보장되는 것은 아닙니다. 그는 MySql Query Browser를 사용하고있었습니다. 똑같지는 않습니다.
gahooa

그러나 문제 설명은 그가 "쉘 명령"을 원한다는 것을 분명히 나타냅니다.
iankit 2014

10

mysqladmin이 필요하지 않습니다.

mysql 명령 줄을 사용하십시오.

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

ps aux 를 통해 시스템의 다른 사용자에게 노출되므로 이런 방식으로 암호를 전달하지는 않지만 drop 명령을 보냅니다.


1

MySQL은 mysql 클라이언트 셸에서 데이터베이스 삭제 명령을 중단했습니다. 데이터베이스를 삭제하려면 mysqladmin을 사용해야합니다.


이것은 질문에 대한 답을 제공하지 않습니다. 작성자에게 비평이나 설명을 요청하려면 게시물 아래에 댓글을 남겨주세요. 언제든지 자신의 게시물에 댓글을 달 수 있으며, 충분한 평판얻으면 모든 게시물댓글 수 있습니다 .
Skynet

질문이 너무 모호하기 때문에 직접 질문에 대답하지 않습니다.
Ilija 2015 년

1

다음과 같이 데이터베이스를 직접 제거 할 수 있습니다.

$ mysqladmin -h [호스트] -u [사용자] -p 드롭 [데이터베이스 _ 이름]

[암호를 입력]

'hairfree'데이터베이스를 삭제 하시겠습니까 [y / N] : y


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

Enter password:******

나는 이것이 다른 많은 답변과 마찬가지로 서버의 다른 사용자에게 암호를 노출한다고 생각하지 않습니다. 대신 사용자가 Enter 키를 누른 후 사용자에게 요청합니다. 아마도 사람들은 아마도 가장 좋은 두 가지 대답을 반대표로 던졌을 때 이것을 깨닫지 못했을 것입니다!
높은 불규칙한
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.