วิธีการใช้ MySQL Proxy

หลังจากหาวิธีอยู่ตั้งนาน เลยมาเรียบเรียงเป็นวิทยาทาน (หรอ?) ให้แก่ผู้ที่พยายามจะศึกษาอยู่ครับ ตอนนี้เอาแค่เบื้องต้นก่อนละกัน

MySQL Proxy คืออะไร?
คือโปรแกรมที่เอาไว้คั่นกลาง ระหว่าง MySQL Server กับ Client (แปลตรงตัวจังนะแก) โดยความสามารถมันไม่ได้มีแค่นั้น มันสามารถ Monitor Query และทำ Query Intercept อะไรพวกนี้ได้ด้วย แต่นั่นไม่ใช่ประเด็น ตอนนี้เรามาสอนแค่วิธีการใช้งานก่อน (Windows นะครับ) โดยหลักการทำงานของมัน ก็ประมาณรูปนี้ครับ

Proxy-overview

ก่อนอื่น ไปดาวน์โหลดตัวโปรแกรมมาจาก
http://dev.mysql.com/downloads/mysql-proxy/

เสร็จแล้วแตกไฟล์ ในที่นี้แตกไฟล์ใน D:\mysql-proxy นะครับ
อ่านวิธีการ config และรายละเอียด command line ได้ที่นี่ครับ
http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy-configuration.html

ก่อนอื่น เรามาสร้างไฟล์ mysql-proxy.ini กันก่อนครับ เนื้อหาตามนี้เลย (ปรับเปลี่ยนได้ตามความเหมาะสมครับ)

[mysql-proxy]
;MySQL server IP and Port for working as backend
proxy-backend-addresses=127.0.0.1:3306

;Proxy Listening port
proxy-address=:4040

;restart if crashed
keepalive=true

;daemon mode
daemon=true

;show all log
log-level=debug

;number of event threads
event-threads=4

proxy-backend-addresses หมายถึง เซิฟเวอร์ mysql ที่เรารันอยู่แล้วนะครับ ให้ชี้ ip และ port ไปยังเซิฟเวอร์ที่เราต้่องการครับ ในที่นี้คือ 127.0.0.1 port 3306

proxy-address หมายถึง ให้มัน Listen ที่ IP และ port ใหน ในกรณีนี้ใส่ :4040 หมายถึง ทุก IP บน port 4040 ครับ

การตั้งค่าที่สำคัญๆ มีประมาณนี้ เสร็จแล้วให้รันด้วยคำสั่งนี้ครับ
mysql-proxy.exe –defaults-file=D:\mysql-proxy\mysql-proxy.ini

หากไม่มีอะไรผิดพลาด จะขึ้นตามรูปครับ (กรณีนี้เปิด log-level=debug ไว้ จึงแสดง log มากกว่าปกติ หากไม่ต้องการมาก ให้ใช้ =message แทนครับ)

mysqlproxy1

เอาหล่ะ เพื่อความชัวร์ว่า proxy ของเราติดต่อกับ mysql ได้ ให้เราทำการใ้้ช้ MySQL Client ทำการติดต่อ (แต่ให้ connect ไปที่ port 4040 แทน) เพื่อดูผลลัพธ์ที่ได้ครับ หากติดต่อได้ ควรจะขึ้นแบบในรูปด้านล่างครับ

mysqlproxy2

 

เอาล่ะ ทีนี้ก็สามารถนำไปใช้งานได้เลยครับ (หากต้องการทำ Query Intercept ด้วย ให้เขียน .lua เองครับ โดยสามารถศึกษาได้ในเว็บ mysql นั่นแหละครับ)

 

ใส่ความเห็น