Kamis, 27 Oktober 2011

Akses MySQL dari “host” lain

Akses MySQL dari “host” lain

Perintah dasar tersebut akan kita jumpai jika kita mempunyai program PHP yang terhubung dengan database MySQL. Koneksi ke database MySQL dilakukan ke komputer yang sama dengan letak program PHP tersebut dengan menggunakan username sebagai user dan passwordnya. Jadi, antara program dan database terdapat dalam satu host atau komputer yang sama. Tetapi kok program web dan database saya bisa saya akses dari komputer saya, dari warnet, dari mana saja asalkan terhubung ke internet? Memang benar dapat diakses dari mana saja, akan tetapi pada dasarnya program dan database tersebut berada pada satu komputer yang komputer tersebut dapat kita “masuki” dengan user yang terbatas hak aksesnya.
Lalu, apakah mungkin kita akses database yang berada pada komputer lain dari komputer kita? dengan kata lain database berada pada komputer lain sedangkan program berada pada komputer kita.

Baris program tersebut melakukan koneksi ke komputer atau host 192.168.0.1 dari komputer dimana program tersebut berada. Jika kita sering menggunaka web server lokal komputer dengan menggunakan user “root” sebaga user untuk koneksi ke mysql, biasanya secara default user tersebut telah memiliki hak akses ke seluruh database yang ada. Namun demikian, jika hal tersebut dilakukan dari komputer lain untuk mengakses mysql belum tentu dapat dilakukan karena tidak memiliki hak akses ke database dari komputer lain.
Salah satu pesan kesalahan jika sedang melakukan koneksi dari komputer lain adalah sebagai berikut:
  1. Warning: mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client in connection.php on line 10
permasalahan tersebut terjadi karena adanya pengecekan autentikasi password pada MySQL 5.0 di komputer yang terdapat database tersebut sedangkan client atau komputer program berada menggunakan MySQL 4.0 dibawahnya.
Cara menanganinya yaitu
- Install MySQL client diatas 4.0 untuk komputer dimana program berada, atau
- Update password untuk user dimana database MySQL berada dengan syntax:
  1. INSERT into mysql.db (Host,Db,user) values (’192.168.0.1′,‘Nama Database’,‘Nama user’);
  2. UPDATE mysql.user SET Password = OLD_PASSWORD(‘password baru’)
  3. WHERE Host = ‘alamat host / IP’ AND User = ‘nama user’;
  4. FLUSH PRIVILEGES;
Baris pertama untuk memberikan hak akses kepada user untuk mengakses database dari 192.168.0.1 dengan database yang ditentukan dan hak-hak apa saja yang dapat diberikan. Sedangkan baris 2 sampai 4 dilakukan karena adanya perbedaan versi MySQL antara di komputer 192.168.0.1 dan komputer databse berada. Untuk melakukan ini Anda harus mempunyai hak akses untuk merubah password user mysql dan hak akses memberikan privileges-nya.

Tidak ada komentar:

Posting Komentar