Script création base de données mysql et utilisateur

#!/bin/sh # Fonction d'affichage du retour du script # printf '\e[32m\e[m' "$1 $2 $3"; ok() { printf "$1 $2 $3\n"; } EXPECTED_ARGS=3 E_BADARGS=65 MYSQL=`which mysql` Q1="CREATE DATABASE IF NOT EXISTS $1;" Q2="GRANT ALL ON *.* TO '$2'@'localhost' IDENTIFIED BY '$3';" Q3="FLUSH PRIVILEGES;" SQL="${Q1}${Q2}${Q3}" if [ $# -ne $EXPECTED_ARGS ] then echo "Usage: $0 dbname dbuser dbpass" exit $E_BADARGS fi $MYSQL -uroot -p -e "$SQL" ok "Database $1 and user $2 created with a password $3"

Donner les droits d'exécution :

cd ~/Téléchargements && chmod +x creerBDDetUser.sh

Exécuter le script :

./scriptCreationBDDetUser.sh nomBDD nomUser_de_BDD mot_passe_user_de_BDD

Rappels

Connexion à mysql en root :

mysql -uroot -p

Exemple de création d'un site nommé site1 :

mysql>CREATE DATABASE site1;

Exemple de création d'un utilisateur nommé utilisateur1 ayant le mot de passe motpasse1 :

mysql>CREATE USER 'utilisateur1'@'localhost' IDENTIFIED BY 'motpasse1';
Rappel Pour supprimer un utilisateur : mysql> DROP USER `utilisateur1`@`localhost`; Depuis le shell linux, il faut prévenir le shell de ne pas interpréter les guillemets inversées : mysql -uroot -p -e "drop user \`essai\`@\`localhost\`;"

Pour lister les utilisateurs :

mysql> SELECT USER,Host FROM mysql.user;

Ou depuis le shell linux :

mysql -uroot -p -e "select user, host from mysql.user;"

Tous les privilèges pour utilisateur1 sur sa bdd site1 :

mysql>GRANT ALL privileges ON site1.* TO 'utilisateur1'@'localhost' IDENTIFIED BY 'motpasse1';

Appel à flush privileges à la fin :

mysql>FLUSH privileges;

Connexion à la base de données site1 en tant qu'utilisateur1 :

(On donne le mot de passe : “motdepasse1”

mysql -u utilisateur1 -p site1

Pour lancer une commande sql depuis le shell bash :

(si des tables ont été créé )

mysql -u utilisateur1 -p site1 -e "show tables;"

* Pour donner un script de création de tables, d'insertion,etc,. sql depuis le shell : (Ne pas oublier le use site1 au début du script de création ou d'insertion pour le site site1 !)

mysql -u utilisateur1 -p <scriptSQL.sql

Références

man mysql

https://technique.arscenic.org/lamp-linux-apache-mysql-php/mysql-le-serveur-de-bases-de-donnees/article/utiliser-mysql-en-ligne-de

http://cipcnet.insa-lyon.fr/sqltut/nexen/adding-users.html

http://sql.sh/cours/where/like

http://www.tutorialspoint.com/mysql/mysql-regexps.htm

https://technique.arscenic.org/lamp-linux-apache-mysql-php/mysql-le-serveur-de-bases-de-donnees/article/utiliser-mysql-en-ligne-de