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.