Kako promijeniti zadani MySQL/MariaDB port u Linuxu


U ovom ćemo vodiču naučiti kako promijeniti zadani priključak koji baza podataka MySQL/MariaDB veže u distribucijama Linuxa koje se temelje na CentOS 7 i Debian. Zadani port na kojem MySQL poslužitelj baze podataka radi pod Linuxom i Unixom je 3306/TCP.

Kako biste promijenili zadani port baze podataka MySQL/MariaDB u Linuxu, otvorite konfiguracijsku datoteku MySQL poslužitelja za uređivanje izdavanjem donje naredbe.

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

Traženje retka stat počinje s [mysqld] i smjestite sljedeću direktivu porta ispod [mysqld] izjave, kao što je prikazano u izvatcima datoteka u nastavku. Zamijenite port varijablu u skladu s tim.

[mysqld] 
port = 12345

Nakon što ste dodali novi MySQL/MariaDB port, spremite i zatvorite konfiguracijsku datoteku i instalirajte sljedeći paket pod CentOS 7 kako biste primijenili potreban SELinux pravila za dopuštanje vezivanja baze podataka na novom priključku.

yum install policycoreutils-python

Zatim dodajte donje SELinux pravilo za vezanje MySQL utičnice na novi port i ponovno pokrenite demon baze podataka da biste primijenili promjene, izdavanjem sljedećih naredbi. Ponovno zamijenite MySQL varijablu porta tako da odgovara vašem broju porta.

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

Kako biste provjerili je li konfiguracija priključka za MySQL/MariaDB poslužitelj baze podataka uspješno primijenjena, izdajte netstat ili ss naredbu i filtrirajte rezultate putem naredbe grep kako biste ih lako identificirali novi MySQL port.

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

Također možete prikazati novi MySQL port tako da se prijavite u MySQL bazu podataka s root računom i izdate donju naredbu. Međutim, imajte na umu da se sve veze s MySQL-om na lokalnom hostu ostvaruju preko MySQL unix utičnice domene, a ne preko TCP utičnice. Ali broj TCP priključka mora biti eksplicitno naveden u slučaju daljinskih veza naredbenog retka s MySQL bazom podataka pomoću oznake -P.

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

U slučaju udaljene veze s MySQL bazom podataka, root korisnik mora biti eksplicitno konfiguriran da dopusti dolazne veze sa svih mreža ili samo s IP adrese, izdavanjem donje naredbe u MySQL konzoli:

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

Daljinski se prijavite na MySQL poslužitelj putem klijenta naredbenog retka na novom priključku izdavanjem naredbe ispod.

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

Konačno, nakon što ste promijenili MySQL/MariaDB port poslužitelja baze podataka, morate ažurirati svoja distribucijska pravila vatrozida kako biste omogućili dolazne veze na novi TCP port kako bi se udaljeni klijenti mogli uspješno povezati s bazom podataka.