Назад | Перейти на главную страницу

сценарий оболочки - создать базу данных mysql

Я пытаюсь создать сценарий оболочки, который:

Пока я пробовал:

#!/bin/bash
mysql -h 111.11.11.11 -u root -p'XXXXXXX'
mysql> CREATE DATABASE foo;

или

echo "CREATE DATABASE foo;";

Но безуспешно.

Я использую командную строку для запуска сценария оболочки.

# sh create_mysql_database.sh

но все, что он делает, это заставляет mysql подключиться и ждать ввода, и все.

Кто-нибудь знает, как этого добиться?

Server:
Centos 6.2
MySQL client version: 5.1.61

Спасибо Алекс

Я бы использовал mysqladmin команда для этого типа задач:

mysqladmin -u root -pPASSWORD create foo

Прежде всего, не должно быть пробелов между -p и фактический пароль.

Во-вторых, насколько я мог видеть из документации, вы можете просто добавить команды сразу после первой части с включенным параметром -e.

Итак, окончательный результат будет выглядеть так:

#!/bin/bash
mysql -h 111.11.11.11 -uroot -pPASSWORD -e "CREATE DATABASE foo;"

Вы должны использовать опцию -e, например:

#!/bin/bash
mysql -h 111.11.11.11 -uroot -pPASSWORD -e "CREATE DATABASE foo;"

или :

#!/bin/bash
SQL="CREATE DATABASE foo;"
mysql -h 111.11.11.11 -uroot -pPASSWORD <<<$SQL

Вы не поверите, но вы можете создать базу данных без входа в mysql.

Например, чтобы создать БД с именем fooпопробуйте следующее:

cd /var/lib/mysql
mkdir foo
chown mysql:mysql foo

и готово !!!