Kaip pakeisti numatytąjį „MySQL/MariaDB“ prievadą sistemoje „Linux“


Šiame vadove sužinosime, kaip pakeisti numatytąjį prievadą, kurį „MySQL/MariaDB“ duomenų bazė susieja „CentOS 7“ ir „Debian“ pagrindu veikiančiuose „Linux“ paskirstymuose. Numatytasis prievadas, kurį „MySQL“ duomenų bazės serveris veikia naudojant „Linux“ ir „Unix“, yra 3306/TCP.

Norėdami pakeisti numatytąjį „MySQL“/„MariaDB“ duomenų bazės prievadą sistemoje „Linux“, atidarykite „MySQL“ serverio konfigūracijos failą redaguoti pateikdami toliau nurodytą komandą.

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

Ieškokite eilutės stat, prasidedančios [mysqld] , ir įdėkite šią prievado direktyvą į [mysqld] sakinį, kaip parodyta toliau pateiktose failų ištraukose. Atitinkamai pakeiskite prievado kintamąjį.

[mysqld] 
port = 12345

Pridėję naują „MySQL/MariaDB“ prievadą, išsaugokite ir uždarykite konfigūracijos failą ir įdiekite šį paketą „CentOS 7“ skiltyje, kad galėtumėte pritaikyti reikiamas „SELinux“ taisykles, leidžiančias duomenų bazei susieti naująjį prievadą.

# yum install policycoreutils-python

Tada pridėkite žemiau esančią SELinux taisyklę, kad susietumėte „MySQL“ lizdą naujame prievade, ir iš naujo paleiskite duomenų bazės demoną, kad pritaikytumėte pakeitimus, pateikdami šias komandas. Vėlgi pakeiskite „MySQL“ prievado kintamąjį, kad jis atitiktų jūsų paties prievado numerį.

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

Norėdami patikrinti, ar „MySQL/MariaDB“ duomenų bazių serverio prievado konfigūracija sėkmingai pritaikyta, išleiskite komandą „grep“, kad galėtumėte lengvai identifikuoti naują „MySQL“ prievadą.

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

Taip pat galite parodyti naują „MySQL“ prievadą prisijungdami prie „MySQL“ duomenų bazės su pagrindine paskyra ir pateikdami toliau nurodytą komandą. Tačiau atminkite, kad visi ryšiai su „MySQL“ „localhost“ atliekami per „MySQL unix“ domeno lizdą, o ne per TCP lizdą. Tačiau naudojant komandinės eilutės nuotolinį ryšį su „MySQL“ duomenų baze naudojant vėliavą -P , TCP prievado numeris turi būti aiškiai nurodytas.

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

Nuotolinio prisijungimo prie „MySQL“ duomenų bazės atveju pagrindinį vartotoją reikia aiškiai sukonfigūruoti, kad įeinantys ryšiai būtų sudaryti iš visų tinklų ar tik iš IP adreso, MySQL konsolėje išduodant šią komandą:

# 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

Nuotoliniu būdu prisijunkite prie „MySQL“ serverio per komandų eilutės klientą naujame prievade, pateikdami žemiau esančią komandą.

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

Galiausiai, kai pakeisite „MySQL/MariaDB“ duomenų bazės serverio prievadą, turite atnaujinti platinimo užkardos taisykles, kad leistumėte įeiti į naująjį TCP prievadą, kad nuotoliniai klientai galėtų sėkmingai prisijungti prie duomenų bazės.