bash에서 한 줄로 mysql 데이터베이스를 만듭니다.


24

bash에서 한 줄의 명령으로 빈 데이터베이스를 만들 수 있습니까?

내 초보자 시도가 실패했습니다.

mysql -uroot $(create database mydatabase;)

나는 결국

  • mysql -uroot
  • create database mydatabase;
  • exit;

답변:


32

@Nitrodist의 대답은 효과가 있지만 문제를 과도하게 엔지니어링하고 있습니다. MySQL의 명령 행 클라이언트는 다음 -e과 같이 매우 편리한 스위치를 지원합니다 .

mysql -uroot -e "create database 'foo'"

물론 유효한 SQL을 대체 할 수 있습니다.


좀 더 조사한 후에 답변을 수정했습니다.
Nitrodist

5
따옴표는 필요하지 않습니다mysql -uroot -e "create database foo"
IanVaughan

1
그러나 작은 따옴표를 사용하면 나에게 ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''foo'' at line 1. 그들 없이는 잘 작동합니다. 감사합니다 @IanVaughan
leymannx

14

MySQL의 문서에 따르면 mysql명령은stdin

shell> mysql -uroot < script.sql > output.tab

프로세스 대체 를 사용 하여이를 수행 할 수 있습니다 .

shell> mysql -uroot <(echo "create database mydatabase;") 

또는 당신은 단지 파이프를 수 stdinmysql보통 :

shell> echo "create database mydatabase;" | mysql -uroot

이것을 개인적으로 테스트 할 수는 없지만 이것이 효과가 있다고 생각합니다.

편집 : 다른 옵션은 여기-e지정된 옵션 을 사용하는 것입니다.

shell> mysql -uroot -e "create database mydatabase;"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.