Hal mendasar yang perlu diketahui adalah pada saat user login cpanel, membuat database usercpanel_mydb, membuat user usercpanel_myuser dan memberi privileges userdb ke database dengan full privileges yang tersedia di opsi mysql wizard di cpanel bukan berarti user sudah bisa dengan serta merta login ke phpmyadmin, membuka database usercpanel_mydb dan membuat / import routine. Mengapa? Karena saat user membuka phpmyadmin dari cpanel, dan memilih database yang ingin dibuatkan routine, bukan berarti user sudah login memakai/sebagai usercpanel_myuser. Namun user login dengan temporary user dari system cpanel. Hal ini dapat dilihat dalam proses dibawah ini, pembuatan / import store procedure/function/view dari 2 phpmyadmin yang berbeda yakni, login / akses dari dalam cpanel dan akses phpmyadmin yang diinstall diweb(melalui softaculous) sehingga tanpa perlu melakukan login ke cpanel dahulu.
#Membuat Routine Procedure / Function dari PhpMyAdmin dengan login melalui cPanel
- Buka phpmyadmin, pilih database, kemudian buka menu routine dan klik add new. Isi form routine seperti pada gambar berikut. Kemudian klik go/save.
- Routine tercreate dengan sukses akan mendapatkan output seperti berikut
- Ketika kita view routine tersebut akan tampak bahwa definer bukanlah user yang kita setting untuk mengakses kedatabase, melainkan temporary user dari phpmyadmin / session login dari cpanel. Perhatikan bagian yang dikotak merah.
- Abila kita ingin mengedit /membuat routine tersebut dan membuat definer sesuai user yang kita tetapkan, maka akan mendapat error access denied
- Silahkan login ke PhpMyAdmin yang diinstall diluar cpanel / ke web (bisa install dari softaculous), misal mydomain.tld/myadmin/ login dengan usercpanel_myuser. kemudian akan mendapati database hanya terlist 1 yakni usercpanel_mydb. Pilih database, kemudian buka menu routine, akan tampil list routine yang sama yang kita lihat jika diakses dari phpmyadmin cpanel. Namun saat kita edit routine yang dibuat dari phpmyadmin cpanel, akan terdapat error seperti gambar dibawah ini dikarenakan routine itu tidak diowned oleh usercpanel_myuser.
Begitu juga dengan opsi Execute juga tidak ada untuk routine tersebut. Perhatikan kotak merah
#Membuat Routine Procedure / Function dari PhpMyAdmin yang diinstall ke domain/web sendiri
- Selanjutnya kita akan membuat routine yang sama tetapi melalui PhpMyAdmin yang kita install terpisah ke web (install dari softaculous). Silahkan login ke phpmyadmin, misal url mydomain.tld/myadmin/ memakai user usercpanel_myuser. Create routine yang sama hingga sukses seperti gambar berikut. Perhatikan url phpmyadmin yang diakses berbeda dengan langkah diatas dan tentunya tanpa session cpanel
Perhatikan opsi Execute pada routine yang baru saja kita buat, opsi itu aktif dan bisa kita akses - Jika kita edit, maka akan terlihat definer sesuai dengan user yang kita gunakan untuk login dan user yang kita set privileges untuk mengakses database usercpanel_mydb yakni user usercpanel_myuser
- Berikut view/edit routine lain yang diimport dari file SQL melalui PhpMyAdmin yang diinstall terpisah