Как создать базу данных из команды оболочки? - PullRequest
159 голосов
/ 11 марта 2010

Я ищу что-то вроде createb в PostgreSQL или любое другое решение, которое позволило бы мне создать базу данных с помощью команды оболочки. Есть намеки?

Ответы [ 8 ]

199 голосов
/ 11 марта 2010

Вы имеете в виду в то время как среда MySQL?

create database testdb;

Или непосредственно из командной строки:

mysql -u root -e "create database testdb"; 
162 голосов
/ 11 марта 2010
cat filename.sql | mysql -u username -p # type mysql password when asked for it

Где filename.sql содержит все sql для создания вашей базы данных. Или ...

echo "create database `database-name`" | mysql -u username -p

Если вы действительно хотите создать базу данных.

67 голосов
/ 16 июля 2013

Если вы создаете новую базу данных, хорошо создать пользователя с разрешениями только для этой базы данных (если что-то пойдет не так, вы не подвергнете риску логин и пароль пользователя root). Так что все вместе будет выглядеть так:

mysql -u base_user -pbase_user_pass -e "create database new_db; GRANT ALL PRIVILEGES ON new_db.* TO new_db_user@localhost IDENTIFIED BY 'new_db_user_pass'"

Где:
base_user - это имя пользователя со всеми привилегиями (возможно, root)
base_user_pass это пароль для base_user (важен недостаток пробела между -p и base_user_pass)
new_db - имя для вновь созданной базы данных
new_db_user - имя для нового пользователя с доступом только для new_db
new_db_user_pass это пароль для new_db_user

36 голосов
/ 02 декабря 2013
mysqladmin -u$USER -p$PASSWORD create $DB_NAME

Замените вышеперечисленные переменные, и вы можете использовать этот способ. $ USER - это имя пользователя, $ PASSWORD - это пароль, а $ DB_NAME - это имя базы данных.

18 голосов
/ 11 августа 2015

Используйте

$ mysqladmin -u <db_user_name> -p create <db_name>

Вам будет предложено ввести пароль. Также убедитесь, что у пользователя mysql, который вы используете, есть права на создание базы данных.

11 голосов
/ 09 апреля 2017

ИСТ и 2-й ответ хороши, но если кто-то ищет сценарий или если вы хотите динамический т. Е. (Db / имя пользователя / пароль в переменной), то здесь:

#!/bin/bash



DB="mydb"
USER="user1"
PASS="pass_bla"

mysql -uroot -prootpassword -e "CREATE DATABASE $DB CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql -uroot -prootpassword -e "CREATE USER $USER@'127.0.0.1' IDENTIFIED BY '$PASS'";
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'";
10 голосов
/ 11 марта 2010

Вы можете использовать SQL в командной строке:

echo 'CREATE DATABASE dbname;' | mysql <...>

Или вы можете использовать mysqladmin:

mysqladmin create dbname
2 голосов
/ 03 марта 2015

Подключение к БД с использованием базового пользователя: mysql -u base_user -pbase_user_pass И выполните заявления CREATE DATABASE, CREATE USER и GRANT PRIVILEGES.

Вот удобный веб-мастер, который поможет вам с утверждениями www.bugaco.com / хелперы / create_database.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...