쉘 명령을 통해 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.