Website-Suche

So ändern Sie den Standard-MySQL/MariaDB-Port unter Linux


In dieser Anleitung erfahren Sie, wie Sie den Standardport ändern, den die MySQL/MariaDB-Datenbank in CentOS 7- und Debian-basierten Linux-Distributionen bindet. Der Standardport, den der MySQL-Datenbankserver unter Linux und Unix ausführt, ist 3306/TCP.

Um den Standard-Datenbankport MySQL/MariaDB unter Linux zu ändern, öffnen Sie die MySQL-Serverkonfigurationsdatei zur Bearbeitung, indem Sie den folgenden Befehl ausführen.

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

Suchen Sie nach der Zeile stat, die mit [mysqld] beginnt, und platzieren Sie die folgende Portanweisung unter der Anweisung [mysqld], wie in den folgenden Dateiauszügen gezeigt. Ersetzen Sie die Portvariable entsprechend.

[mysqld] 
port = 12345

Nachdem Sie den neuen MySQL/MariaDB-Port hinzugefügt haben, speichern und schließen Sie die Konfigurationsdatei und installieren Sie das folgende Paket unter CentOS 7, um das erforderliche SELinux anzuwenden Regeln, die es der Datenbank ermöglichen, sich an den neuen Port zu binden.

yum install policycoreutils-python

Fügen Sie als Nächstes die folgende SELinux-Regel hinzu, um den MySQL-Socket an den neuen Port zu binden, und starten Sie den Datenbankdämon neu, um die Änderungen zu übernehmen, indem Sie die folgenden Befehle ausgeben. Ersetzen Sie die MySQL-Portvariable erneut so, dass sie mit Ihrer eigenen Portnummer übereinstimmt.

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

Um zu überprüfen, ob die Portkonfiguration für den MySQL/MariaDB-Datenbankserver erfolgreich angewendet wurde, geben Sie den Befehl netstat oder ss ein und filtern Sie die Ergebnisse mit dem Befehl grep, um eine einfache Identifizierung zu ermöglichen der neue MySQL-Port.

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

Sie können den neuen MySQL-Port auch anzeigen, indem Sie sich mit einem Root-Konto bei der MySQL-Datenbank anmelden und den folgenden Befehl eingeben. Beachten Sie jedoch, dass alle Verbindungen zu MySQL auf localhost über den MySQL-Unix-Domänen-Socket und nicht über den TCP-Socket hergestellt werden. Die TCP-Portnummer muss jedoch bei Befehlszeilen-Remoteverbindungen zur MySQL-Datenbank mithilfe des Flags -P explizit angegeben werden.

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

Im Falle einer Remote-Verbindung zur MySQL-Datenbank muss der Root-Benutzer explizit so konfiguriert werden, dass er eingehende Verbindungen aus allen Netzwerken oder nur einer IP-Adresse zulässt, indem er den folgenden Befehl in der MySQL-Konsole ausgibt:

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

Melden Sie sich remote über einen Befehlszeilen-Client am neuen Port beim MySQL-Server an, indem Sie den folgenden Befehl ausgeben.

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

Nachdem Sie schließlich den Port des MySQL/MariaDB-Datenbankservers geändert haben, müssen Sie die Regeln Ihrer Verteilungs-Firewall aktualisieren, um eingehende Verbindungen zum neuen TCP-Port zuzulassen, damit Remote-Clients erfolgreich eine Verbindung zur Datenbank herstellen können.