Sådan ændres standard MySQL/MariaDB-port i Linux


I denne vejledning lærer vi, hvordan du ændrer standardporten, som MySQL/MariaDB-databasen binder i CentOS 7 og Debian-baserede Linux-distributioner. Standardporten, som MySQL-databaseserver kører under Linux og Unix, er 3306/TCP.

For at ændre standard MySQL/MariaDB-databaseporten i Linux skal du åbne 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øg efter linjestatus 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, skal du gemme og lukke konfigurationsfilen og installere følgende pakke under CentOS 7 for at anvende de krævede SELinux-regler for at tillade databasen at binde til den nye port.

# yum install policycoreutils-python

Dernæst tilføj nedenstående SELinux-regel for at binde MySQL-stikket på den nye port og genstart database-dæmonen for at anvende ændringer ved at udstede følgende kommandoer. Igen skal du udskifte MySQL-portvariabel 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 til MySQL/MariaDB-databaseserver er blevet anvendt, skal du udstede grep-kommando for let 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 på MySQL-databasen med root-konto og udstede nedenstående kommando. Vær dog opmærksom på, at alle forbindelser til MySQL på localhost oprettes via MySQL unix domænesocket, ikke via TCP-stikket. Men TCP-portnummeret skal angives eksplicit i tilfælde af kommandolinjefjernforbindelser til MySQL-database ved hjælp af -P -flagget.

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

I tilfælde af fjernforbindelse til MySQL-database skal rodbrugeren udtrykkeligt konfigureres til at tillade indgående forbindelser fra alle netværk eller bare en IP-adresse ved at udstede nedenstående kommando i MySQL-konsol:

# 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-server via en kommandolinjeklient på den nye port ved at udstede nedenstående kommando.

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

Når du endelig har ændret MySQL/MariaDB-databaseserverporten, skal du opdatere din distribution Firewall-regler for at tillade indgående forbindelser til den nye TCP-port, så fjernklienter med succes kan oprette forbindelse til databasen.