ວິທີການປ່ຽນພອດ MySQL/MariaDB ໃນ Linux


ໃນຄູ່ມືນີ້ພວກເຮົາຈະຮຽນຮູ້ວິທີການປ່ຽນພອດເລີ່ມຕົ້ນທີ່ຖານຂໍ້ມູນ MySQL/MariaDB ຜູກມັດໃນ CentOS 7 ແລະການແຈກຈ່າຍ Linux ທີ່ອີງໃສ່ Debian. ພອດເລີ່ມຕົ້ນທີ່ເຊີຟເວີຖານຂໍ້ມູນ MySQL ກຳ ລັງເຮັດວຽກຢູ່ພາຍໃຕ້ Linux ແລະ Unix ແມ່ນ 3306/TCP.

ເພື່ອປ່ຽນພອດຖານຂໍ້ມູນ MySQL/MariaDB ໃນ Linux, ເປີດໄຟລ໌ການຕັ້ງຄ່າຂອງ MySQL ສຳ ລັບການດັດແກ້ໂດຍອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມ.

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

ຄົ້ນຫາເສັ້ນສະຖິຕິເລີ່ມຕົ້ນດ້ວຍ [mysqld] ແລະວາງ ຄຳ ສັ່ງທີ່ Port ດັ່ງຕໍ່ໄປນີ້ຢູ່ພາຍໃຕ້ ຄຳ ຖະແຫຼງການ [mysqld] , ດັ່ງທີ່ສະແດງໃນເອກະສານຂ້າງລຸ່ມນີ້. ປ່ຽນຕົວປ່ຽນພອດຕາມຄວາມ ເໝາະ ສົມ.

[mysqld] 
port = 12345

ຫຼັງຈາກທີ່ທ່ານໄດ້ເພີ່ມພອດ MySQL/MariaDB ໃໝ່, ບັນທຶກແລະປິດເອກະສານການຕັ້ງຄ່າແລະຕິດຕັ້ງຊຸດຕໍ່ໄປນີ້ພາຍໃຕ້ CentOS 7 ເພື່ອປະຕິບັດກົດລະບຽບ SELinux ທີ່ຕ້ອງການເພື່ອອະນຸຍາດໃຫ້ຖານຂໍ້ມູນຜູກຢູ່ໃນທ່າເຮືອ ໃໝ່.

# yum install policycoreutils-python

ຕໍ່ໄປ, ເພີ່ມກົດ SELinux ຂ້າງລຸ່ມນີ້ເພື່ອຜູກເຕົ້າຮັບ MySQL ໃນພອດ ໃໝ່ ແລະເລີ່ມ daemon ຖານຂໍ້ມູນເພື່ອ ນຳ ໃຊ້ການປ່ຽນແປງ, ໂດຍອອກ ຄຳ ສັ່ງຕໍ່ໄປນີ້. ອີກເທື່ອຫນຶ່ງ, ປ່ຽນຕົວປ່ຽນພອດ MySQL ເພື່ອກົງກັບ ໝາຍ ເລກພອດຂອງທ່ານເອງ.

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

ເພື່ອກວດສອບວ່າການຕັ້ງຄ່າພອດ ສຳ ລັບເຊີຟເວີຖານຂໍ້ມູນ MySQL/MariaDB ຖືກ ນຳ ໃຊ້ຢ່າງປະສົບຜົນ ສຳ ເລັດ, ອອກ ຄຳ ສັ່ງ grep ເພື່ອສາມາດລະບຸພອດ MySQL ໃໝ່ ໄດ້ງ່າຍ.

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

ນອກນັ້ນທ່ານຍັງສາມາດສະແດງພອດ MySQL ໃໝ່ ໂດຍເຂົ້າສູ່ລະບົບຖານຂໍ້ມູນ MySQL ດ້ວຍບັນຊີຮາກແລະອອກ ຄຳ ສັ່ງລຸ່ມນີ້. ເຖິງຢ່າງໃດກໍ່ຕາມ, ຈົ່ງຮູ້ວ່າການເຊື່ອມຕໍ່ທັງ ໝົດ ກັບ MySQL ໃນ localhost ແມ່ນເຮັດຜ່ານເຕົ້າຮັບໂດເມນຂອງ MySQL, ບໍ່ແມ່ນຜ່ານ TCP. ແຕ່ ໝາຍ ເລກພອດ TCP ຕ້ອງຖືກ ກຳ ນົດຢ່າງຈະແຈ້ງໃນກໍລະນີທີ່ມີສາຍເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກກັບຖານຂໍ້ມູນ MySQL ໂດຍໃຊ້ -P ທຸງ

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

ໃນກໍລະນີຂອງການເຊື່ອມຕໍ່ຫ່າງໄກສອກຫຼີກກັບຖານຂໍ້ມູນ MySQL, ຜູ້ໃຊ້ຮາກຕ້ອງໄດ້ຖືກ ກຳ ນົດຢ່າງຈະແຈ້ງເພື່ອໃຫ້ການເຊື່ອມຕໍ່ຂາເຂົ້າປະກອບເປັນທຸກເຄືອຂ່າຍຫຼືພຽງແຕ່ທີ່ຢູ່ IP, ໂດຍການອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ໃນ MySQL console:

# 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

ເຂົ້າສູ່ລະບົບຫ່າງໄກສອກຫຼີກໃນ MySQL server ຜ່ານລູກຄ້າເສັ້ນ ຄຳ ສັ່ງຢູ່ທ່າເຮືອ ໃໝ່ ໂດຍອອກ ຄຳ ສັ່ງຂ້າງລຸ່ມ.

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

ສຸດທ້າຍ, ເມື່ອທ່ານໄດ້ປ່ຽນພອດເຊີເວີ້ຖານຂໍ້ມູນ MySQL/MariaDB, ທ່ານ ຈຳ ເປັນຕ້ອງປັບປຸງລະບຽບການແຈກຈ່າຍຂອງ Firewall ເພື່ອໃຫ້ສາມາດເຊື່ອມຕໍ່ຂາເຂົ້າກັບພອດ TCP ໃໝ່ ເພື່ອໃຫ້ລູກຄ້າຫ່າງໄກສອກຫຼີກສາມາດເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນໄດ້ຢ່າງປະສົບຜົນ ສຳ ເລັດ.