Jinsi ya Kubadilisha Bandari ya Default ya MySQL/MariaDB katika Linux


Katika mwongozo huu tutajifunza jinsi ya kubadilisha bandari chaguo-msingi ambayo hifadhidata ya MySQL/MariaDB inafunga katika CentOS 7 na usambazaji wa Linux unaotegemea Debian. Lango chaguo-msingi ambalo seva ya hifadhidata ya MySQL inafanya kazi chini ya Linux na Unix ni 3306/TCP.

Ili kubadilisha hifadhidata chaguomsingi ya MySQL/MariaDB katika Linux, fungua faili ya usanidi ya seva ya MySQL kwa kuhaririwa kwa kutoa amri iliyo hapa chini.

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

Utafutaji wa takwimu huanza na [mysqld] na uweke mwongozo wa mlango ufuatao chini ya taarifa ya [mysqld], kama inavyoonyeshwa katika manukuu ya faili hapa chini. Badilisha utofauti wa bandari ipasavyo.

[mysqld] 
port = 12345

Baada ya kuongeza lango mpya la MySQL/MariaDB, hifadhi na funga faili ya usanidi na usakinishe kifurushi kifuatacho chini ya CentOS 7 ili kutumia sheria zinazohitajika za SELinux ili kuruhusu hifadhidata kubandika kwenye mlango mpya.

# yum install policycoreutils-python

Ifuatayo, ongeza sheria iliyo hapa chini ya SELinux ili kufunga tundu la MySQL kwenye bandari mpya na uanze upya daemoni ya hifadhidata ili kutumia mabadiliko, kwa kutoa amri zifuatazo. Tena, badilisha utofauti wa bandari ya MySQL ili kufanana na nambari yako ya bandari.

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

Ili kuthibitisha ikiwa usanidi wa bandari wa seva ya hifadhidata ya MySQL/MariaDB umetumika kwa mafanikio, toa amri ya grep ili kutambua kwa urahisi lango mpya la MySQL.

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

Unaweza pia kuonyesha bandari mpya ya MySQL kwa kuingia kwenye hifadhidata ya MySQL na akaunti ya mizizi na kutoa amri iliyo hapa chini. Hata hivyo, fahamu kwamba miunganisho yote kwa MySQL kwenye localhost hufanywa kupitia soketi ya kikoa cha MySQL unix, si kupitia tundu la TCP. Lakini nambari ya mlango wa TCP lazima ibainishwe kwa uwazi iwapo kuna miunganisho ya mbali ya mstari wa amri kwenye hifadhidata ya MySQL kwa kutumia -P bendera.

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

Katika kesi ya muunganisho wa mbali kwa hifadhidata ya MySQL, mtumiaji wa mizizi lazima asanidiwe kwa uwazi ili kuruhusu miunganisho inayoingia kuunda mitandao yote au anwani ya IP tu, kwa kutoa amri iliyo hapa chini katika kiweko cha 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

Ingia kwa mbali kwa seva ya MySQL kupitia mteja wa mstari wa amri kwenye bandari mpya kwa kutoa amri iliyo hapa chini.

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

Hatimaye, mara tu umebadilisha bandari ya seva ya hifadhidata ya MySQL/MariaDB, unahitaji kusasisha sheria zako za Firewall za usambazaji ili kuruhusu miunganisho inayoingia kwenye bandari mpya ya TCP ili wateja wa mbali waweze kuunganishwa kwa hifadhidata kwa mafanikio.