Accéder à MySQL.
----------------------
Je suppose dans ce chapitre que vous possédez certaines connaissances
sur les Systèmes de Gestion de Bases de Données et dans leur
administration... Si tel n'est pas le cas, je vous recommande de lire
l'abondante documentation disponible dans ce domaine. Je m'inspire,
pour la suite, du HOWTO (en anglais) de Dan Brown :
http://www.familybrown.org/howtos/mysql ... howto.htmlA l'installation de SME, quatre "utilisateurs" MySQL sont créés : 2
horde (en localhost et en everywhere) qui est utilisé pour le WebMail et
2 root (en localhost et en alias du serveur) qui supporte la lourde tâche
de DBA (Administrateur Base de Données). C'est donc le compte root que
nous allons étudier.
Par défaut, il dispose d'un mot de passe de 76 caractères aléatoires
(visible dans /root/.my.cnf). Ce mot de passe et ce fichier ne doivent
JAMAIS être modifiés !!! Comme ces 76 caractères sont impossibles à
mémoriser et qu'il est assez pénible d'avoir à les copier/coller à chaque
fois dans vos scripts, l'idéal est de créer un ou plusieurs utilisateurs
qui auront certains droits sur les bases de données et/ou le SGBD.
Dans tous les cas, vous devez ouvrir une session root (l'administrateur
SME) sur le serveur et lancer le client MySQL en tapant tout simplement
"mysql" (sans les guillemets) à l'invite de commande. Attention, à partir
de maintenant, vous êtes DBA MySQL et toute erreur de manipulation peut
être critique !
Dans le suite, les paramètres en minuscule, les adresses IP et les
masques de sous-réseau sont à modifier en fonction de vos besoins et
toutes les commandes sont présentées sur trois lignes, vous devrez donc
recoller les morceaux pour les utiliser. Voici maintenant comment créer
des utilisateurs MySQL avec différents droits :
*) Création d'un DBA avec accès depuis une classe d'adresse IP ou une
adresse IP en particulier (avec un masque en 255.255.255.255) :
mysql> GRANT ALL PRIVILEGES ON *.*
TO 'nouveau_dba'@'123.123.123.0/255.255.255.0'
IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;
Nota : l'option "WITH GRANT OPTION" n'est pas indispensable et doit
être évitée à chaque fois que c'est possible. Elle n'est présentée ici
que pour être conforme aux droits que doit avoir un DBA (voir la
documentation s'y rapportant pour plus d'informations).
*) Création d'un DBA avec accès depuis le réseau local (c'est le cas le
plus intéressant pour l'administration du serveur MySQL) :
mysql> GRANT ALL PRIVILEGES ON *.*
TO 'nouveau_dba'@'%'
IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;
Nota : ne pas modifier le paramètre '%'.
*) Création d'un utilisateur standard avec accès local sur une base de
données en particulier (très utile pour les scripts PHP, notamment) :
mysql> GRANT SELECT, UPDATE, INSERT, DELETE ON base_de_données.*
TO 'nouvel_utilisateur'@'localhost'
IDENTIFIED BY 'mot_de_passe';
Nota : ne pas modifier le paramètre 'localhost'.
Après cette création, vous devez indiquer à MySQL de prendre en compte
ces nouveaux utilisateurs et quitter le client :
mysql> FLUSH PRIVILEGES;
mysql> QUIT;
Au cas où vous auriez fait des bêtises et supprimé ou modifié les comptes
MySQL existants, il vous est toujours possible de les récupérer en tapant
les trois commandes suivantes :
/etc/rc.d/init.d/mysqld stop
/etc/e-smith/events/actions/conf-mysql-password
/etc/rc.d/init.d/mysqld start