22

Можно ли создать пустую базу данных с одной командной строкой в bash?

Мои попытки новичка потерпели неудачу:

mysql -uroot $(create database mydatabase;)

Я заканчиваю тем, что должен

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

2 ответа2

30

Ответ @ Nitrodist сработает, но он переоценивает проблему. Клиент командной строки MySQL поддерживает очень удобный ключ -e , например:

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

Конечно, вы можете заменить любой действительный SQL-код.

13

Согласно документации MySQL, mysql может принимать команды от stdin

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

Вы можете использовать замену процесса, чтобы выполнить это:

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

или вы можете просто передать его на стандартный stdin mysql :

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

Не могу проверить это лично, но я думаю, что это должно сработать.

Редактировать: Другой вариант - использовать указанную здесь опцию -e , например:

shell> mysql -uroot -e "create database mydatabase;"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .