Recherche de site Web

Comment changer le port MySQL/MariaDB par défaut sous Linux


Dans ce guide, nous apprendrons comment modifier le port par défaut lié à la base de données MySQL/MariaDB dans les distributions Linux CentOS 7 et Debian. Le port par défaut que le serveur de base de données MySQL exécute sous Linux et Unix est 3306/TCP.

Afin de modifier le port de base de données MySQL/MariaDB par défaut sous Linux, ouvrez le fichier de configuration du serveur MySQL pour le modifier en exécutant la commande ci-dessous.

vi /etc/my.cnf.d/server.cnf                   [On CentOS/RHEL]
vi /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu] 

Recherchez la ligne stat commence par [mysqld] et placez la directive de port suivante sous l'instruction [mysqld], comme indiqué dans les extraits de fichier ci-dessous. Remplacez la variable de port en conséquence.

[mysqld] 
port = 12345

Après avoir ajouté le nouveau port MySQL/MariaDB, enregistrez et fermez le fichier de configuration et installez le package suivant sous CentOS 7 afin d'appliquer le SELinux requis règles pour permettre à la base de données de se lier sur le nouveau port.

yum install policycoreutils-python

Ensuite, ajoutez la règle SELinux ci-dessous pour lier le socket MySQL sur le nouveau port et redémarrez le démon de base de données pour appliquer les modifications, en exécutant les commandes suivantes. Encore une fois, remplacez la variable de port MySQL pour qu'elle corresponde à votre propre numéro de port.

--------------- On CentOS/RHEL --------------- 
semanage port -a -t mysqld_port_t -p tcp 12345
systemctl restart mariadb

--------------- On Debian/Ubuntu ---------------
systemctl restart mysql      [On Debian/Ubuntu]  

Afin de vérifier si la configuration du port pour le serveur de base de données MySQL/MariaDB a été appliquée avec succès, exécutez la commande netstat ou la ss et filtrez les résultats via la commande grep afin d'identifier facilement le nouveau port MySQL.

ss -tlpn | grep mysql
netstat -tlpn | grep mysql

Vous pouvez également afficher le nouveau port MySQL en vous connectant à la base de données MySQL avec le compte root et en exécutant la commande ci-dessous. Cependant, sachez que toutes les connexions à MySQL sur localhost se font via le socket de domaine MySQL unix, et non via le socket TCP. Mais le numéro de port TCP doit être explicitement spécifié en cas de connexions distantes en ligne de commande à la base de données MySQL à l'aide de l'indicateur -P.

mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';

En cas de connexion à distance à la base de données MySQL, l'utilisateur root doit être explicitement configuré pour autoriser les connexions entrantes depuis tous les réseaux ou simplement une adresse IP, en exécutant la commande ci-dessous dans la console MySQL :

mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.159' identified by 'strongpass';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

Connectez-vous à distance au serveur MySQL via un client de ligne de commande sur le nouveau port en exécutant la commande ci-dessous.

mysql -h 192.168.1.159 -P 12345 -u root -p  

Enfin, une fois que vous avez modifié le port du serveur de base de données MySQL/MariaDB, vous devez mettre à jour les règles de votre pare-feu de distribution pour autoriser les connexions entrantes au nouveau port TCP afin que les clients distants puissent se connecter avec succès à la base de données.