2010-03-11 11 views

Respuesta

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

Dónde filename.sql contiene todo el código SQL para crear la base de datos. O ...

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

Si realmente solo desea crear una base de datos.

+1

Recibo este error ERROR 1046 (3D000) en la línea 27: No hay ninguna base de datos seleccionada cuando ejecuto echo "create database databasename" | mysql -u -u nombre de usuario -p comando – keerthi

+0

@keerthi: ¿quizás su usuario no tiene privilegios en ningún esquema existente? – Kris

+1

Es porque hay dos banderas '-u' – Stephen

7

Puede utilizar SQL en la línea de comandos:

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

O puede utilizar mysqladmin:

mysqladmin create dbname 
164

Es decir, mientras que el entorno de MySQL?

create database testdb; 

o directamente desde la línea de comandos:

mysql -u root -e "create database testdb"; 
+8

mysql -u root -e "create database testdb"; Eso es lo que estaba buscando :) gracias – koszikot

+1

En caso de que tenga una contraseña, simplemente agregue -p. Después de presionar Enter, se le preguntará su contraseña. El siguiente es un ejemplo que usa mi usuario que es root (cámbielo si tiene un nombre de usuario anoter) y también usa el nombre "oc_local" para la base de datos (cámbielo si desea que se llame su base de datos de una manera diferente) - ----> mysql -u root -p -e "crea la base de datos oc_local"; – pablofiumara

62

Si crea una nueva base de datos, es bueno crear usuarios con permisos solo para esta base de datos (si algo sale mal, no comprometerá el inicio de sesión y la contraseña del usuario raíz). Así que todo junto se verá así:

mysql -u base_user -pbase_user_pass -e "create database new_db; GRANT ALL PRIVILEGES ON new_db.* TO [email protected] IDENTIFIED BY 'new_db_user_pass'" 

Dónde:
base_user es el nombre de usuario con todos los privilegios (probablemente la raíz)
base_user_pass es la contraseña para base_user (falta de espacio entre -py base_user_pass es importante)
new_db es el nombre de la base de datos recién creada
new_db_user es el nombre de los EE.UU. nueva er con acceso sólo para new_db
new_db_user_pass es la contraseña para new_db_user

+0

masivo. Acabo de agregar este gran trazador de líneas a los fragmentos de dashdocs. En caso de que alguien tenga una contraseña de root con espacios: '-p" contraseña de root aquí "' funciona bien – hmedia1

30
mysqladmin -u$USER -p$PASSWORD create $DB_NAME 

Reemplazar por encima de las variables y que son buenos para ir con este oneliner. $ USER es el nombre de usuario, $ PASSWORD es la contraseña y $ DB_NAME es el nombre de la base de datos.

+0

Esta es la mejor solución, es perfecta para el trabajo –

1

Conectar a base de datos utilizando la base de usuario: mysql -u base_user -pbase_user_pass y ejecutar Crear base de datos Crear usuario y otorgar privilegios declaraciones.

Aquí es asistente web útil para ayudarle con declaraciones www.bugaco.com/helpers/create_database.html

15

Use

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

Se le pedirá la contraseña. También asegúrese de que el usuario de mysql que utiliza tiene privilegios para crear una base de datos.

4

La segunda y segunda respuesta son buenas, pero si alguien está buscando tener un script o si quieres dinámico i.e (db/nombre de usuario/contraseña en la variable) luego aquí:

#!/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 [email protected]'127.0.0.1' IDENTIFIED BY '$PASS'"; 
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'"; 
Cuestiones relacionadas