Я пытаюсь создать сценарий оболочки, который:
Пока я пробовал:
#!/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
и готово !!!