Cum se schimbă portul implicit MySQL/MariaDB în Linux


În acest ghid, vom afla cum să schimbăm portul implicit pe care îl leagă baza de date MySQL/MariaDB în distribuțiile Linux bazate pe CentOS 7 și Debian. Portul implicit pe care îl rulează serverul de baze de date MySQL sub Linux și Unix este 3306/TCP.

Pentru a schimba portul implicit al bazei de date MySQL/MariaDB în Linux, deschideți fișierul de configurare a serverului MySQL pentru editare lansând comanda de mai jos.

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

Căutați statistica de linie începe cu [mysqld] și plasați următoarea directivă de port sub instrucțiunea [mysqld], așa cum se arată în fragmentele de fișier de mai jos. Înlocuiți variabila port în consecință.

[mysqld] 
port = 12345

După ce ați adăugat noul port MySQL/MariaDB, salvați și închideți fișierul de configurare și instalați următorul pachet sub CentOS 7 pentru a aplica SELinux necesar. reguli pentru a permite bazei de date să se lege la noul port.

yum install policycoreutils-python

Apoi, adăugați regula SELinux de mai jos pentru a lega socket-ul MySQL pe noul port și reporniți demonul bazei de date pentru a aplica modificări, lansând următoarele comenzi. Din nou, înlocuiți variabila de port MySQL pentru a se potrivi cu propriul număr de port.

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

Pentru a verifica dacă configurația portului pentru serverul de baze de date MySQL/MariaDB a fost aplicată cu succes, lansați netstat sau ss command și filtrați rezultatele prin comanda grep pentru a identifica cu ușurință noul port MySQL.

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

De asemenea, puteți afișa noul port MySQL conectându-vă la baza de date MySQL cu contul root și lansând comanda de mai jos. Cu toate acestea, rețineți că toate conexiunile la MySQL pe localhost se fac prin socket-ul de domeniu MySQL unix, nu prin socket-ul TCP. Dar numărul portului TCP trebuie să fie specificat în mod explicit în cazul conexiunilor de la distanță în linia de comandă la baza de date MySQL folosind flag-ul -P.

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

În cazul conexiunii de la distanță la baza de date MySQL, utilizatorul root trebuie configurat în mod explicit pentru a permite conexiunile de intrare din toate rețelele sau doar o adresă IP, prin lansarea comenzii de mai jos în consola MySQL:

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

Conectați-vă de la distanță la serverul MySQL printr-un client de linie de comandă pe noul port, lansând comanda de mai jos.

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

În cele din urmă, odată ce ați schimbat portul pentru serverul de baze de date MySQL/MariaDB, trebuie să actualizați regulile Firewall-ului de distribuție pentru a permite conexiunile de intrare la noul port TCP, astfel încât clienții la distanță să se poată conecta cu succes la baza de date.