Minggu, 24 April 2011

Database Error ::: Query failed: execute command denied to user ‘username’@'localhost’ for routine ‘database_name.MyUDF’

Malam minggu, jam masih menunjukkan pukul 23.00 di kantor, sedang shift malam nih ceritanya. Telepon berdering, setelah diangkat, penelpon minta bicara dengan support. Setelah dijelaskan kalau aku bagian support , dia mendiktekan suatu url, yang setelah diakses menampilkan pesan eror dengan format :

Query failed: execute command denied to user ‘username’@'localhost’ for routine ‘database_name.MyUDF’

Dugaan awal, mengarah ke koneksi database yang gagal, karena seting konfigurasi koneksi yang salah atau belum di-add-nya username db ke database. Saat cek di file yang diakses, ada petunjuk mengenai file konfigurasi koneksi database nya. Cek ke TKP, di file config ketemu setingan koneksi database-nya. Dicocokkan dengan setingan di menu mySQL database, gak ada yang salah. Jadi apa penyebabnya ya?

Dan yang belum pernah ketemu juga adalah format routine ‘database_name.MyUDF’ di mana yang terseting bukan hanya nama database nya, tapi ada tambahan nama lain. Dugaan awal itu adalah nama table, tapi dicek di database nya gak ada nama itu. Ternyata itu adalah ‘routine’, dan ada link ke daftar routine di sebelah bawah table di phpmyadmin.



baru tahu yang namanya routine
Belum tahu bagaimana dan apa fungsi routine ini, nanti kalau sudah tahu ku-update artikel ini.

Mulai lah konsultasi sama dukun ternama, google.com. Berbagai variasi gerakan dan posisi keyword dicoba masuk ke kotak search, namun hasilnya banyak yang melenceng dan tidak menyentuh esensi persoalan, deuuhhh

(_ _”)a

Sedikit clue dari pesan errornya adalah bahwa username db nya tertolak untuk melakukan eksekusi perintah (command), dugaannya tadinya privillege nya belum diseting all, tapi ternyata setelah dicek dari cpanel user, sudah diseting all privillege. Coba menelusur lagi wejangan yang diberikan mbah google, akhirnya nemu petunjuk jelasnya di link http://www.daniweb.com/forums/thread143001.html

I had exactly same problem to work on for a client ..I managed to fix it.
Cpanel does not allows user to give execute permission.. the issue can only be fixed by your webhost company having root access.

Ask them to go to root phpmyadmin>>your database>> privilages>> under that they will find table with local host ,your database user and permission allowed details ..ask them to edit it and allow execute permission to the user .. all is fixed for me now

Jadi solusinya memang dari orang yang punya akses ke root, yaitu para support hosting seperti eike ini , untuk yang cuma nyewa hosting silakan minta ke support perusahaan hostingnya untuk melakukan hal ini :

Masuk ke whm server, ke menu phpmyadmin, kemudian cari (search) database yang dibutuhkan, klik nama database itu.



menu privillege di phpmyadmin cuma ada di root
Menu privilleges ini cuma ada di phpmyadmin root server, di phpmyadmin cpanel user tidak ada. Jadi memang hanya orang yang punya akses ke root server yang bisa melakukan seting ini.

Klik di menu privilleges itu, lalu di baris dengan user-nya adalah username database kita, dan host-nya adalah localhost, klik di icon pensil. Centang semua opsi yang ada, lalu klik Go. Dah cukup, dengan seting itu, kita pastikan username database nya punya akses untuk mengeksekusi perintah routine nya.

Entah setingan itu manjur tidak untuk masalah user yang telpon tadi, yang jelas saat diakses urlnya, tidak tampak lagi pesan errornya. Tidak ada sama sekali yang tampak bahkan, alias blank , entahlah, coba nanti kupantau. Paling nggak, ini referensi yang bisa digunakan kalau ada masalah dengan koneksi ke database routine.

Semoga lekas sembuh.

Populer Post