Monday, November 4, 2013

Tunnelling MySQL Over SSH on Windows 8 via putty

  • Firewall มันไม่เปิดให้เราหรอก 3306 แต่เราไม่ง้อ ในเมื่อ 22 ยังผ่านตลอด
Solved
  • เปิด putty ขึ้นมา Login ไปที่ remote host ให้เรียบร้อย ด้วยวิธีใดก็ได้ จากนั้น คลิกขวาที่ title bar ของหน้าต่าง putty นั้น เลือกไปที่ Change Settings ...
  • ไปที่ Connection => SSH => Tunnels
  • Source port คือ พอร์ตหมายเลขจำลองที่เราจะใช้ mysql client connect ที่เครื่อง localhost เอง ในที่นี้ใส่เป็น 3307 แล้วกัน 
  • Destination คือ พอร์ตปลายทางที่จะ remote เข้าไปโดยผ่าน SSH session putty ตัวนี้ ในที่นี้คือ MySQL 3306 ให้เราใส่เป็น localhost:3306 หรือ 127.0.0.1:3306 ไป (คือ server ตั้ง MySQL ไว้ที่พอร์ตใหนก็ใส่หมายเลขนั้นแหละ) จากนั้น คลิก Add และสุดท้าย Apply ให้เรียบร้อย
  • คำสั่งลอง connect ไปที่ remote host mysql ดูด้วย pattern command ประมาณนี้ ก็ได้
mysql [-h host] -P -u -p [database]

ตัวอย่างการเชื่อมต่อ
mysql -h localhost -P 3307 -u username -p
หรือ 
mysql -P 3307 -u username -p databsename
เพิ่มเติม

  • ในการใช้งานของผู้เขียนเอง เครื่องผู้เขียนได้ลง MySQL ไว้บนเครื่องด้วย ทำให้เครื่องผู้เขียนเปิดพอร์ต 3306 ไว้อยู่ Source port จึงตั้งเป็น 3306 ไม่ได้ เพราะมันจะเชื่อมต่อ service mysql บนเครื่อง local 
  • เราไม่จำเป็นต้องตั้งเป็น 3307 ก็ได้ แต่ที่ตั้งเพราะให้ใกล้เคียงกับ พอร์ตมาตรฐานของ MySQL เค้า
  • ถ้าเรา Source port เป็น 3306 ตัว คำสั่งเชื่อมต่อ ไม่ต้องใส่ option -P ก็ได้เพราะถ้าไม่ใส่มันเป็นมีค่าเริ่มต้นเป็น 3306 อยู่แล้ว
Related
Refer

No comments:

Post a Comment