Cette documentation a pour but de détailler les manipulations ou le fonctionnement des différentes sections importantes d'un serveur MySQL. Nous vous recommandons toutefois d'effectuer ces manipulations
avec précaution, en adaptant les consignes selon votre situation et vos besoins, et
en ayant au préalable effectué une sauvegarde de vos bases de données.
Cette documentation s'applique à un serveur MySQL privé, c'est à dire un serveur MySQL installé directement et manuellement sur le serveur VPS.
0) Recharger les privilèges
Avant toute chose, il est nécessaire de comprendre que les modifications effectuées sont prises en compte à chaque rafraichissement de privilèges. Ce rafraichissement est évoqué en lançant la commande :
root@votre-machine:~# FLUSH PRIVILEGES;
1) Lister ses utilisateurs
Cette commande permet d'avoir la liste de tous les utilisateurs ainsi que leurs hôtes associés. L'hôte est l'adresse à partir de laquelle l'utilisateur est autorisé à se connecter :
root@votre-machine:~# SELECT User,Host FROM mysql.user;
2) Créer un nouvel utilisateur
2.1 - Création d'un utilisateur accessible via localhost
Une fois connecté à votre serveur MySQL, il vous faudra créer un utilisateur MySQL avec la commande suivante (
Attention à la présence de caractères spéciaux , ainsi que des quotes qui peuvent ne pas être interprétés correctement par certaines méthodes de connexion PHP) :
root@votre-machine:~# CREATE USER 'nom-utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
2.2 - Création d'un utilisateur accessible via une IP ou adresse définie
La même commande que la précédente avec une légère modification doit être lancée en remplaçant
localhost par l'adresse IP ou le nom de serveur nécessaire. Le wildcard est autorisé avec
% à la place de localhost afin de permettre la connexion depuis n'importe quel hôte :
root@votre-machine:~# CREATE USER 'nom-utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
3) Attribuer à un utilisateur des droits sur une base de données
3.1 - Attribution des droits sur toutes les bases de données
La commande suivante permet de définir des droits sur toutes les bases de données à un utilisateur :
root@votre-machine:~# GRANT ALL PRIVILEGES ON * . * TO 'nom-utilisateur'@'localhost';
3.2 - Attribution des droits sur une base de données
Pour attribuer des droits sur une (ou des) base(s) de données uniquement :
root@votre-machine:~# GRANT ALL PRIVILEGES ON nom_de_la_base . * TO 'nom-utilisateur'@'localhost';
4) Supprimer un utilisateur
Afin de supprimer un utilisateur, la commande suivante à adapter peut-être utilisée :
root@votre-machine:~# DROP USER 'nom-utilisateur'@'localhost';