Como criar um banco de dados a partir do comando shell?

Estou à procura de algo como createdb no PostgreSQL ou qualquer outra solução que me permita criar banco de dados com a ajuda de um comando shell. Alguma pista?

Author: Roman Pokrovskij, 2010-03-11

8 answers

cat filename.sql | mysql -u username -p # type mysql password when asked for it

Onde está o nome do ficheiro.o sql contém todo o sql para criar o seu banco de dados. Ou...

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

Se realmente só quiser criar uma base de dados.

 146
Author: Kris, 2017-10-29 16:44:01
Referes-te ao ambiente mysql?
create database testdb;

Ou directamente da linha de comandos:

mysql -u root -e "create database testdb"; 
 180
Author: Felix Kling, 2010-03-11 20:27:50

Se criar uma nova base de dados, é bom criar um utilizador com permissões apenas para esta base de dados (se alguma coisa correr mal, não irá comprometer a autenticação e a senha do utilizador do root). Então tudo junto será assim:

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'"

Onde:
base_user é o nome de usuário com todos os privilégios (provavelmente a raiz)
base_user_pass é a senha para base_user (falta de espaço entre -p e base_user_pass é importante)
new_db é o nome para o recém - banco de dados criado
new_db_user é o nome do novo usuário com acesso apenas para new_db
new_db_user_pass é a senha para new_db_user

 63
Author: jmarceli, 2013-07-16 12:12:43
mysqladmin -u$USER -p$PASSWORD create $DB_NAME

Substitua as variáveis acima e está pronto para usar este oneliner. $USER é o nome do Usuário, $PASSWORD é a senha e $DB_NAME é o nome da base de dados.

 33
Author: karlingen, 2013-12-02 07:52:22

Utilizar

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

Ser-lhe-á pedida a senha. Certifique-se também que o usuário mysql que você usa tem privilégios para criar banco de dados.

 18
Author: Willa, 2015-10-27 12:04:52

Pode usar SQL na linha de comandos:

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

Ou pode utilizar mysqladmin:

mysqladmin create dbname
 7
Author: Lukáš Lalinský, 2010-03-11 20:26:41

A IST e a segunda resposta são boas, mas se alguém estiver à procura de um programa ou se quiser um Ie dinâmico (db/utilizador / Senha na variável), então aqui:

#!/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'";
 7
Author: Salah-1, 2017-04-08 21:05:30

Ligar ao DB usando o utilizador de base: mysql -u base_user -pbase_user_pass E executar criar banco de dados, criar declarações de privilégios de usuário e GRANT.

Aqui está o assistente web handy para o ajudar com as declarações www.bugaco.com/helpers/create_database.html
 2
Author: CaptZ-, 2015-03-03 02:36:47