Dans ce guide, nous apprendrons comment changer le port par défaut que MySQL/MariaDB liaisons de base de données dans CentOS 7 et Debian distributions Linux basées sur . 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 changer le MySQL/MariaDB par défaut port de base de données 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]
La recherche de la statistique de ligne commence par [mysqld]
et placez la directive de port suivante sous [mysqld]
déclaration, comme indiqué dans les extraits de fichiers ci-dessous. Remplacez la variable de port en conséquence.
[mysqld] port = 12345
Après avoir ajouté le nouveau MySQL/MariaDB port, 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 au nouveau port.
# yum install policycoreutils-python
Ensuite, ajoutez le SELinux ci-dessous rule pour lier le socket MySQL sur le nouveau port et redémarrer 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 MySQL/MariaDB le serveur de base de données a été appliqué avec succès, émettez netstat ou la commande 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 un compte root et en lançant 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 à distance en ligne de commande à la base de données MySQL en utilisant le -P
drapeau.
# 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 à partir de tous les réseaux ou uniquement d'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 en 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 changé MySQL/MariaDB port du serveur de base de données, vous devez mettre à jour vos règles de pare-feu de distribution pour autoriser les connexions entrantes sur le nouveau port TCP afin que les clients distants puissent se connecter avec succès à la base de données.