Zoeken op website

Hoe u de standaard MySQL/MariaDB-poort in Linux kunt wijzigen


In deze handleiding leren we hoe u de standaardpoort kunt wijzigen die de MySQL/MariaDB-database koppelt in CentOS 7 en Debian-gebaseerde Linux-distributies. De standaardpoort waarop de MySQL-databaseserver draait onder Linux en Unix is 3306/TCP.

Om de standaard MySQL/MariaDB databasepoort in Linux te wijzigen, opent u het MySQL-serverconfiguratiebestand om het te bewerken door de onderstaande opdracht te geven.

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

Zoek naar de regelstatistiek die begint met [mysqld] en plaats de volgende poortinstructie onder de [mysqld]-instructie, zoals weergegeven in de onderstaande bestandsfragmenten. Vervang de poortvariabele dienovereenkomstig.

[mysqld] 
port = 12345

Nadat u de nieuwe MySQL/MariaDB-poort heeft toegevoegd, slaat u het configuratiebestand op en sluit u het en installeert u het volgende pakket onder CentOS 7 om de vereiste SELinux toe te passen regels om de database te laten binden op de nieuwe poort.

yum install policycoreutils-python

Voeg vervolgens de onderstaande SELinux regel toe om de MySQL-socket op de nieuwe poort te binden en start de database-daemon opnieuw om de wijzigingen toe te passen, door de volgende opdrachten uit te voeren. Vervang opnieuw de MySQL-poortvariabele zodat deze overeenkomt met uw eigen poortnummer.

--------------- 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]  

Om te verifiëren of de poortconfiguratie voor de MySQL/MariaDB databaseserver met succes is toegepast, geeft u de opdracht netstat of ss op en filtert u de resultaten via de grep-opdracht om ze gemakkelijk te kunnen identificeren de nieuwe MySQL-poort.

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

U kunt de nieuwe MySQL-poort ook weergeven door in te loggen op de MySQL-database met een root-account en de onderstaande opdracht uit te voeren. Houd er echter rekening mee dat alle verbindingen met MySQL op localhost tot stand worden gebracht via de MySQL unix-domeinsocket, en niet via de TCP-socket. Maar het TCP-poortnummer moet expliciet worden opgegeven in het geval van externe verbindingen via de opdrachtregel met de MySQL-database met behulp van de vlag -P.

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

In het geval van een externe verbinding met de MySQL-database moet de rootgebruiker expliciet worden geconfigureerd om inkomende verbindingen van alle netwerken of alleen een IP-adres toe te staan, door het onderstaande commando in de MySQL-console te geven:

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

Meld u op afstand aan bij de MySQL-server via een opdrachtregelclient op de nieuwe poort door de onderstaande opdracht te geven.

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

Tenslotte moet u, nadat u de MySQL/MariaDB-databaseserverpoort heeft gewijzigd, de Firewall-regels voor uw distributie bijwerken om inkomende verbindingen met de nieuwe TCP-poort toe te staan, zodat externe clients met succes verbinding kunnen maken met de database.