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

Pièces jointes

[PJ : Script de création base et utilisateur MySQL](user://files/documents/Script de création base et utilisateur MySQL)

Previous Post Next Post