I denne vejledning lærer vi, hvordan du ændrer standardporten, som MySQL/MariaDB database binder i CentOS 7 og Debian -baserede Linux-distributioner. Standardporten, som MySQL-databaseserveren kører under Linux og Unix, er 3306/TCP .
For at ændre standard MySQL/MariaDB databaseport i Linux, åbn MySQL-serverkonfigurationsfilen til redigering ved at udstede nedenstående kommando.
# vi /etc/my.cnf.d/server.cnf [On CentOS/RHEL] # vi /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]
Søgning efter linjestatistikken starter med [mysqld]
og placer følgende portdirektiv under [mysqld]
erklæring, som vist i nedenstående filuddrag. Udskift portvariablen i overensstemmelse hermed.
[mysqld] port = 12345
Når du har tilføjet den nye MySQL/MariaDB port, gem og luk konfigurationsfilen og installer følgende pakke under CentOS 7 for at anvende den påkrævede SELinux regler for at tillade databasen at binde sig til den nye port.
# yum install policycoreutils-python
Tilføj derefter nedenstående SELinux regel for at binde MySQL-socket på den nye port og genstarte databasedæmonen for at anvende ændringer ved at udstede følgende kommandoer. Igen, udskift MySQL-portvariablen for at matche dit eget portnummer.
--------------- 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]
For at kontrollere, om portkonfigurationen for MySQL/MariaDB databaseserveren er blevet anvendt, udgiv netstat eller ss-kommando og filtrer resultaterne via grep-kommandoen for nemt at identificere den nye MySQL-port.
# ss -tlpn | grep mysql # netstat -tlpn | grep mysql
Du kan også få vist den nye MySQL-port ved at logge ind på MySQL-databasen med root-konto og udstede nedenstående kommando. Vær dog opmærksom på, at alle forbindelser til MySQL på localhost sker via MySQL unix domæne-socket, ikke via TCP-socket. Men TCP-portnummeret skal udtrykkeligt angives i tilfælde af kommandolinjefjernforbindelser til MySQL-databasen ved hjælp af -P
flag.
# mysql -h localhost -u root -p -P 12345 MariaDB [(none)]> show variables like 'port';
I tilfælde af fjernforbindelse til MySQL-databasen skal root-brugeren udtrykkeligt konfigureres til at tillade indgående forbindelser fra alle netværk eller kun en IP-adresse ved at udstede nedenstående kommando i MySQL-konsollen:
# 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
Log ind på MySQL-serveren via en kommandolinjeklient på den nye port ved at udstede nedenstående kommando.
# mysql -h 192.168.1.159 -P 12345 -u root -p
Endelig, når du har ændret MySQL/MariaDB databaseserverport, skal du opdatere dine distributions Firewall-regler for at tillade indgående forbindelser til den nye TCP-port, så fjernklienter kan oprette forbindelse til databasen.