Error “SQLSTATE[28000] [1045] Access denied for user” Pada Laravel

Kemarin saya menemukan error pada laravel saya dengan pesan error seperti ini “SQLSTATE[28000] [1045] Access denied for user ‘xxx’…….” – tentu secara sekilas ini adalah masalah database, maka saya sudah cek semua mulai username database, nama database dan passwordnya, tentu port dan host harus dicek semua.

Ketika semua sudah saya cek, dan semua tampak dengan benar tetapi masih menemukan masalah maka saya menyerah, menyerah ke penyedia hosting dan tentu menyerahkan kepada mereka dengan alasan di hosting yang lain oke oke saja.

Dan apa kata hosting provide menjawab masalah saya tersebut? Berikut adalah jawabannya:

“Jika Password Database Berupa Symbol Maka Harus Biberikan Tanda Kutip”

Jadi ketika password memiliki simbol di depan dan belakangnya, contoh “@password” ada simbol “@” di depannya. Contoh lain: “Password!!!” ada tanda “!” di belakangnya maka pada bagian password ini harus dikasih tanda petik berupa atau .

Anda dapat melihat bahwa di Laravel ada file “.env” yang berisi informasi koneksi database:

DB_DATABASE=nama_database
DB_USERNAME=username_database
DB_PASSWORD=password_database
# jika password tidak mengandung symbol 
# maka TIDAK harus pakai tanda kutip di depan dan di belakangnya.

DB_DATABASE=nama_database
DB_USERNAME=username_database
DB_PASSWORD="@password_database"
# jika password mengandung symbol di bagian depannya 
# maka HARUS dikasih tanda kutip.

DB_DATABASE=nama_database
DB_USERNAME=username_database
DB_PASSWORD="password_database#"
# jika password mengandung symbol di bagian belakangnya 
# maka HARUS dikasih tanda kutip.

Aturan tersebut seperitnya tidak terjadi di semua server (hosting service), tetapi ini perlu dijadikan catatan penting, bisa saja suatu saat kita akan menemukan kasus seperti itu. Semoga bermanfaat.