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