ວິທີການປ່ຽນພອດ 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 ໃໝ່ ເພື່ອໃຫ້ລູກຄ້າຫ່າງໄກສອກຫຼີກສາມາດເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນໄດ້ຢ່າງປະສົບຜົນ ສຳ ເລັດ.