====== 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
===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