Réponses:
cat filename.sql | mysql -u username -p # type mysql password when asked for it
Où filename.sql contient tout le sql pour créer votre base de données. Ou...
echo "create database `database-name`" | mysql -u username -p
Si vous ne voulez vraiment créer qu'une base de données.
-u
drapeaux
Vous voulez dire alors que l'environnement mysql?
create database testdb;
Ou directement depuis la ligne de commande:
mysql -u root -e "create database testdb";
Si vous créez une nouvelle base de données, il est bon de créer un utilisateur avec des autorisations uniquement pour cette base de données (si quelque chose ne va pas, vous ne compromettez pas le login et le mot de passe de l'utilisateur root). Donc, tout ensemble ressemblera à ceci:
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'"
Où:
base_user est le nom de l'utilisateur avec tous les privilèges (probablement la racine)
base_user_pass c'est le mot de passe de base_user (le manque d'espace entre -p et base_user_pass est important)
new_db est le nom de la base de données nouvellement créée
new_db_user est le nom du nouvel utilisateur avec accès uniquement pour new_db
new_db_user_pass c'est le mot de passe pour new_db_user
-p"root password here"
mysqladmin -u$USER -p$PASSWORD create $DB_NAME
Remplacez les variables ci-dessus et vous êtes prêt à utiliser cet oneliner. $ USER est le nom d'utilisateur, $ PASSWORD est le mot de passe et $ DB_NAME est le nom de la base de données.
La ist et la 2ème réponse sont bonnes, mais si quelqu'un cherche à avoir un script ou si vous voulez dynamique ie (db / username / password dans la variable) alors ici:
#!/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'";
Vous pouvez utiliser SQL sur la ligne de commande:
echo 'CREATE DATABASE dbname;' | mysql <...>
Ou vous pouvez utiliser mysqladmin
:
mysqladmin create dbname
Connectez-vous à la base de données en utilisant l'utilisateur de base:
mysql -u base_user -pbase_user_pass
Et exécutez les instructions CREATE DATABASE, CREATE USER et GRANT PRIVILEGES.
Voici un assistant Web pratique pour vous aider avec les déclarations www.bugaco.com/helpers/create_database.html