Je dois souvent créer des bases MySQL et les utilisateurs qui y ont accès, ne serait-ce que pour tester des logiciels (libres, il va sans dire), ou pour monter rapidement des plates-formes de démonstration dans le cadre d'avant-vente.
Même si la création d'une base est très simple :
mysqladmin -u root -p create <MABASE>
Et que l'ajout d'un utilisateur ayant les pleins pouvoirs est également simple :
grant all on <MABASE>.* to <MONUSER>@'localhost' identified by <MONMOTDEPASSE>;
J'ai préféré créer un script shell (bash), qui me demande juste de rentrer les valeurs correspondant au nom de la base, au nom de l'utilisateur et à son mot de passe. Et comme je suis d'un naturel paresseux (intelligemment paresseux, comme se plaisait à dire un de mes profs de math en école d'ingénieur), je peux uniquement entrer le nom de la base, et le nom de l'utilisateur et le mot de passe en découlent.
#!/bin/bash
#
# Creation d'une base de donees MySQL + utilisateur
#
# @author : V. Liefooghe
# @version : 1.0.0
#
# v 1.0.0 : 14/02/2012
#
#---------------------------------------------------------
echo -n "Nom de la base : "
read DBNAME
if [ "$DBNAME" != "" ] ; then
echo "Creation de la base $DBNAME"
echo -n "Nom de l'utilisateur [$DBNAME]: "
read DBUSER
if [ "$DBUSER" = "" ] ; then
DBUSER=$DBNAME
fi
echo "Utilisateur : $DBUSER"
echo -n "Mot de passe [$DBNAME.pwd%]: "
read DBPASS
if [ "$DBPASS" = "" ] ; then
DBPASS="$DBNAME.pwd%"
fi
echo "Mot de passe : $DBPASS"
echo "-----------------------------"
echo "Creation de la base : $DBNAME"
echo "Creation de l'utilisateur : $DBUSER"
echo "avec le mot de passe : $DBPASS"
echo -n "Confirmez-vous cette action ? [o/N] "
read CONFIRM
if [ "$CONFIRM" = "o" -o "$CONFIRM" = "O" ] ; then
echo "create database $DBNAME ; " > /tmp/$$.tmp.sql
echo "grant all on $DBNAME.* to $DBUSER@'localhost' identified by '$DBPASS' ; " >> /tmp/$$.tmp.sq
l
echo "exit " >> /tmp/$$.tmp.sql
echo " "
echo "Connexion MySQL ..."
echo " "
mysql -u root -p < /tmp/$$.tmp.sql
if [ $? := "0" ] ; then
echo "Probleme de connexion MySQL"
fi
rm /tmp/$$.tmp.sql
fi
fi
Le script s'exécute simplement en lançant :
sh credb.sh
[PJ : Script de création base et utilisateur MySQL](user://files/documents/Script de création base et utilisateur MySQL)