ເຮັດໃຫ້ MySQL ໃຊ້ TCP port ທີ່ສົ່ງຕໍ່
ຫຼີກລ່ຽງການເລືອກ Unix socket ທ້ອງຖິ່ນ ເມື່ອລູກຄ້າ MySQL ຄວນເຊື່ອມຕໍ່ຜ່ານການສົ່ງຕໍ່ SSH TCP.
ການສົ່ງຕໍ່ SSH ຮັບຟັງຢູ່ port ທ້ອງຖິ່ນ 13306, ແຕ່ mysql ຍັງເຊື່ອມຕໍ່ກັບຖານຂໍ້ມູນທ້ອງຖິ່ນ—ຫຼືລາຍງານວ່າ Unix socket ທ້ອງຖິ່ນຂອງມັນຂາດຫາຍ. ໃນ Unix, ລູກຄ້າ MySQL ທີ່ໄດ້ຮັບ localhost ສາມາດເລືອກ Unix socket ແທນ TCP. ການໃຫ້ port ບໍ່ຈຳເປັນຕ້ອງປ່ຽນການເລືອກນັ້ນ.
ສຳລັບການສົ່ງຕໍ່ TCP ທີ່ໄດ້ຮັບອະນຸມັດແລ້ວ, ເຮັດໃຫ້ໂປຣໂຕຄອນຊັດເຈນ:
mysql --protocol=TCP --host=127.0.0.1 --port=13306 \
--user=dbuser --password
ຊື່ຜູ້ໃຊ້ເປັນພຽງຕົວຢ່າງ; ຕົວເລືອກລະຫັດຜ່ານຮ້ອງຂໍການປ້ອນແບບໂຕ້ຕອບ. ຄຳສັ່ງເຊື່ອມຕໍ່ກັບຜູ້ຮັບຟັງ TCP ທ້ອງຖິ່ນ ແທນ Unix socket.
ແຍກການເຂົ້າສູ່ລະບົບສອງຢ່າງ
ເສັ້ນທາງ SSH ຄົງທີ່ສາມາດມີຮູບແບບນີ້:
ssh -N -L 127.0.0.1:13306:db.internal:3306 [email protected]
ເຊີບເວີ SSH ຂອງ gateway ໄປຮອດ db.internal:3306. ຈາກນັ້ນ MySQL ພິສູດຢືນຢັນບັນຊີຖານຂໍ້ມູນຜ່ານກະແສ byte ນັ້ນ. ກະແຈ SSH ທີ່ຖືກຍອມຮັບບໍ່ໄດ້ໃຫ້ການເຂົ້າສູ່ຖານຂໍ້ມູນ, ແລະ ຂໍ້ຈຳກັດແຫຼ່ງຂອງຖານຂໍ້ມູນເຫັນການເຊື່ອມຕໍ່ມາຈາກທາງດ້ານນັ້ນຂອງເສັ້ນທາງ.
ນີ້ແມ່ນອາດາເປີ TCP ຄົງທີ່ ບໍ່ແມ່ນການຕັ້ງຄ່າ SOCKS ທີ່ mysql ໃຊ້. ແອັບພລິເຄຊັນບໍ່ຕ້ອງການການເຈລະຈາ SOCKS ເພາະຈຸດປາຍທາງຂອງການສົ່ງຕໍ່ມີເປົ້າໝາຍດຽວທີ່ກຳນົດໄວ້ກ່ອນ.
ຮັກສາເອກະລັກ TLS ຂອງຖານຂໍ້ມູນທີ່ຕັ້ງໃຈ ແລະ ນະໂຍບາຍໃບຢັ້ງຢືນໃນບ່ອນທີ່ພວກມັນຖືກໃຊ້. ການເຊື່ອມຕໍ່ socket ກັບ loopback ບໍ່ເຮັດໃຫ້ໃບຢັ້ງຢືນຖານຂໍ້ມູນຖືກຕ້ອງສຳລັບຊື່ບໍລິການອື່ນ. ການເຊື່ອມຕໍ່ TCP ທ້ອງຖິ່ນທີ່ສຳເລັດແກ້ໄຂການເລືອກການຂົນສົ່ງ ບໍ່ແມ່ນການພິສູດຢືນຢັນຖານຂໍ້ມູນ ຫຼື ການກວດສອບ TLS ໃນພາຍຫຼັງ.