Sungguh suatu keanehan luar biasa terjadi. Aplikasi monitoring resiko perdagangan bursa atau Risk Monitoring saya tidak jalan ketika di-install di komputer customer service. Proses installasi sendiri berjalan lancar, namun setiap kali user login maka aplikasi akan menolaknya dengan mengatakan bahwa user dan password salah. Namun saat saya debug pada mesin development, saya tidak pernah menemui masalah tersebut, sehingga sulit bagi saya untuk melakukan perbaikan. Proses injeksi ulang database hingga installasi aplikasi berulang kali dilakukan, namun tidak ada perbaikan berarti.

Desperate measure pun saya lakukan. Saya pasang beberapa point debugging pada aplikasi, yaitu menampilkan MessageBox pada sebelum login dan setiap user menekan tombol OK ataupun Cancel pada login form. Tindakan ini membuahkan hasil, saat aplikasi melakukan query untuk mem-validasi user dan password dan muncullah error atas query tersebut yaitu Collation Error. Walah, ternyata MySql server di komputer tersebut di install menggunakan default character-set latin1 sedangkan aplikasi menggunakan utf8. Dan inilah yang menyebabkan user selalu ditolak saat login. Sementara saya mempelajari lebih jauh lagi mengenai fitur baru MySql ini, saya akhirnya meminta cs untuk men-setup ulang MySql server sehingga default character-set & collation untuk server dan koneksi adalah utf8 melalui MySql Administrator

Memang beberapa fitur baru MySql 4.1 agak membuat repot, padahal beberapa fitur lain sangat saya butuhkan terutama fitur subquery-nya. Salah satu fitur lain yang sempat membuat pusing adalah strong encryption-nya. Namun setelah mempelajari dokumen MySql lebih jauh, hal ini dapat ditanggulangi dengan menggunakan tag old-password.

Permasalahan Collations dan Character Sets ini pun akhirnya dapat saya pecahkan setelah membaca lebih jauh tentang hal tersebut pada dokumen MySql. Dan dikarenakan saya belum membutuhkan fitur ini, akhirnya saya memilih solusi konversi pada saat client berkoneksi dengan MySql server. Dengan solusi ini, apapun default character-nya MySql server aplikasi masih dapat berjalan dengan normal.. mudah-mudahan. Dan untuk mendukung solusi ini saya menyisipkan perintah MySql SET NAMES utf8 pada base class koneksi MySql saya. Sehingga pada penggunaan berikutnya saya tidak akan pernah dipusingkan lagi dengan masalah ini.

Leave a Reply

Your email address will not be published. Required fields are marked *