Hvordan endre standard MySQL/MariaDB-port i Linux


I denne veiledningen lærer vi hvordan du endrer standardporten som MySQL/MariaDB-databasen binder i CentOS 7 og Debian-baserte Linux-distribusjoner. Standardporten som MySQL-databaseserveren kjører under Linux og Unix er 3306/TCP.

For å endre standard MySQL/MariaDB-databaseport i Linux, åpne MySQL-serverkonfigurasjonsfilen for redigering ved å gi kommandoen nedenfor.

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

Søk etter linjestatistikken starter med [mysqld] og plasser følgende portdirektiv under [mysqld]-setningen, som vist i filutdragene nedenfor. Bytt ut portvariabelen tilsvarende.

[mysqld] 
port = 12345

Etter at du har lagt til den nye MySQL/MariaDB-porten, lagre og lukk konfigurasjonsfilen og installer følgende pakke under CentOS 7 for å bruke de nødvendige SELinux-reglene for å la databasen binde seg til den nye porten.

# yum install policycoreutils-python

Deretter legger du til SELinux-regelen nedenfor for å binde MySQL-socket på den nye porten og start databasedemonen på nytt for å bruke endringer, ved å utstede følgende kommandoer. Igjen, bytt ut MySQL-portvariabelen for å matche ditt 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 å verifisere om portkonfigurasjonen for MySQL/MariaDB-databaseserveren har blitt brukt, utfør grep-kommandoen for å enkelt identifisere den nye MySQL-porten.

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

Du kan også vise den nye MySQL-porten ved å logge på MySQL-databasen med root-konto og gi kommandoen nedenfor. Vær imidlertid oppmerksom på at alle tilkoblinger til MySQL på localhost gjøres via MySQL unix domene-socket, ikke via TCP-socket. Men TCP-portnummeret må spesifiseres eksplisitt i tilfelle av kommandolinje-fjerntilkoblinger til MySQL-databasen ved å bruke -P-flagget.

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

Ved ekstern tilkobling til MySQL-databasen, må rotbrukeren eksplisitt konfigureres til å tillate innkommende tilkoblinger fra alle nettverk eller bare en IP-adresse, ved å gi kommandoen nedenfor 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

Logg på MySQL-serveren eksternt via en kommandolinjeklient på den nye porten ved å gi kommandoen nedenfor.

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

Til slutt, når du har endret MySQL/MariaDB-databaseserverporten, må du oppdatere distribusjonsbrannmurreglene for å tillate innkommende tilkoblinger til den nye TCP-porten slik at eksterne klienter kan koble til databasen.