Kako promijeniti zadani MySQL/MariaDB port u Linuxu


U ovom vodiču ćemo naučiti kako promijeniti zadani port koji MySQL/MariaDB baza podataka veže u CentOS 7 i Debian-baziranim Linux distribucijama. Podrazumevani port koji MySQL server baze podataka radi pod Linuxom i Unixom je 3306/TCP.

Da biste promijenili zadani MySQL/MariaDB port baze podataka u Linuxu, otvorite konfiguracijsku datoteku MySQL servera 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 linije stat počinje sa [mysqld] i stavite sljedeću direktivu porta pod [mysqld] naredbu, kao što je prikazano u odlomcima datoteke ispod. Zamijenite varijablu porta u skladu s tim.

[mysqld] 
port = 12345

Nakon što ste dodali novi MySQL/MariaDB port, sačuvajte i zatvorite konfiguracijski fajl i instalirajte sljedeći paket pod CentOS 7 kako biste primijenili potrebni SELinux pravila koja dozvoljavaju bazi podataka da se veže na novom portu.

yum install policycoreutils-python

Zatim dodajte pravilo SELinux u nastavku da povežete MySQL socket na novom portu i ponovo pokrenite demon baze podataka da biste primijenili promjene, izdavanjem sljedećih naredbi. Opet, zamijenite varijablu MySQL porta 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]  

Da biste provjerili da li je konfiguracija porta za MySQL/MariaDB server baze podataka uspješno primijenjena, izdajte netstat ili ss naredbu i filtrirajte rezultate putem komande grep kako biste lako identificirali novi MySQL port.

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

Također možete prikazati novi MySQL port tako što ćete se prijaviti na MySQL bazu podataka s root računom i izdati naredbu ispod. Međutim, imajte na umu da se sve veze na MySQL na lokalnom hostu ostvaruju preko MySQL unix domenske utičnice, a ne preko TCP utičnice. Ali broj TCP porta mora biti eksplicitno specificiran u slučaju daljinskog povezivanja komandne linije na MySQL bazu podataka pomoću oznake -P.

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

U slučaju daljinskog povezivanja na MySQL bazu podataka, root korisnik mora biti eksplicitno konfigurisan da dozvoli dolazne veze sa svih mreža ili samo sa IP adrese, izdavanjem naredbe ispod 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 server preko klijenta komandne linije na novom portu izdavanjem naredbe ispod.

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

Konačno, nakon što promijenite MySQL/MariaDB port servera baze podataka, morate ažurirati pravila distributivnog firewall-a kako biste omogućili dolazne veze na novi TCP port tako da se udaljeni klijenti mogu uspješno povezati na bazu podataka.