Configuration du serveur de base de données

Dans cette leçon, je ne vais pas vous expliquez entièrement configurer MariaDB ou MySQL, mais vous dire où trouver les différents fichiers de configuration et je vais vous donner quelques petites astuces afin de vous facilitez l’administration de celui-ci.

Où trouver les fichiers de configuration

Ce qu’il faut savoir avant d’aller plus loin, historiquement la configuration du serveur MySQL était faite à travers le fichier my.cnf.

Pour MariaDB et MySQL, le dossier où se trouve la configuration est le suivant :

/etc/mysql

Comment on peut le voir sur les captures ci-dessus, le my.cnf qui se trouve dans le dossier /etc/mysql est un lien symbolique qui point vers un fichier qui se trouve dans le dossier /etc/alternatives/my.cnf.

Si on regarde le contenu des 2 fichiers my.cnf, on peut voir qu’ils servent à indiquer l’emplacement des fichiers de configuration à inclure.

Maintenant que vous savez où chercher, je vais dire quels fichiers éditer si vous avez besoin d’apporter des modifications.

Pour les deux logiciels, c’est légèrement différent.

Configuration de MariaDB

Le fichier principal de configuration du serveur MariaDB se nomme 50-server.cnf et se trouve dans le dossier /etc/mysql/mariadb.conf.d/

Configuration de MySQL

Le fichier principal de configuration du serveur MySQL se nomme mysqld.cnf et se trouve dans le dossier /etc/mysql/mysql.conf.d/


Maintenant que vous savez où se trouve les fichiers de configuration, nous allons pouvoir continuer sur le prochain point.

Autoriser l’accès à distance au serveur MariaDB / MySQL

Dans certain cas, il peut être nécessaire d’avoir besoin de se connecter aux services de base de données pour se connecter depuis un site hébergé sur un autre serveur, une application en client lourd, effectuer une sauvegarde ou simplement administrer le serveur.

Par défaut le serveur de base de données est configuré pour seulement être utilisé localement (127.0.0.1 ou localhost).

Je vais maintenant vous expliquer comment configurer le serveur MariaDB ou MySQL pour se connecter à distance dessus.

Dans le fichier de configuration, rechercher la ligne :

bind-address            = 127.0.0.1

Cette ligne indique au serveur d’écouter seulement sur l’adresse 127.0.0.1

Commenter la ligne en ajoutant un # devant :

#bind-address            = 127.0.0.1

Sauvegarder la configuration puis redémarrer le service :

sudo systemctl restart mysql

Pour le moment, le seul moyen que nous avons de tester que le serveur de base de données est accessible à distance va être d’utiliser l’utilitaire telnet depuis un serveur ordinateur distant et de tester avec la commande :

telnet ip_du_server 3306

Si la connexion à fonctionner un message de ce type s’affiche :

Cela peut être déroutant, car un message d’erreur indiquant que l’hôte n’est pas autorisé à se connecter, on peut voir que la deuxième ligne indique que la connexion est établie, donc le service est accessible.

SI la connexion échoue voici le message qui s’affiche au niveau de telnet :

Autoriser l’accès à distance notamment sur Internet peut créer une faille de sécurité.

Créer un super-utilisateur

Dernier élément que nous allons voir dans cette leçon, c’est la création d’un super-utilisateur, car pour le moment, nous avons seulement l’utilisateur root que l’on peut utiliser depuis la console du serveur Linux.

Ce que nous allons maintenant faire, c’est créer un utilisateur qui a les même droits que le compte root, que nous allons pouvoir utiliser pour se connecter à notre serveur (notamment avec phpMyadmin que l’on va voir dans la prochaine leçon).

La création d’un utilisateur se fait en utilisant des requêtes SQL dans la console.

Commencer par vous connectez au serveur MariaDB / MySQL

sudo mysql

Voici la requête qui va nous permettre de créer l’utilisateur admin qui va pouvoir se connecter depuis n’importe quelle adresse IP et qui a tous les droits (modifier le mot de passe) :

Je vais vous expliquer les différentes requêtes :

CREATE USER 'admin'@'%' IDENTIFIED BY 'mot_de_passe';

Cette première requête va créer l’utilisateur ‘admin‘ qui est autorisé à se connecter @ depuis n’importe quelle adresse IP ‘%‘. avec le mot de passe indiqué. Le signe % est un joker qui indique tout, il est possible ici d’indiquer une adresse IP afin de limiter l’utilisation du compte depuis une machine.

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;

Cette requête définie les droits GRANT ALL PRIVILEGES ON *.* que l’on attribut à l’utilisateur ‘admin’@’%’.

FLUSH PRIVILEGES;

Cette requête permet de recharger les droits afin qu’ils soient appliqués

Pour tester le bon fonctionne, on peut le faire depuis un client comme HeidiSQL ou en ligne de commande depuis un serveur Linux qui a le client mysql d’installé ce que je vais vous montrer.

Utiliser cette commande (en adaptant):

sudo mysql -hIPDUSERVER -uLOGIN -pPASSWORD

Vous savez comment modifier la configuration de votre serveur de données et exécuter des requêtes directement depuis un terminal.