Cara Mengatasi Error SQLSTATE[HY000] [1045] Access Denied di Laravel

Saat menjalankan php artisan migrate atau membuka aplikasi Laravel, Anda mungkin bertemu error ini: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password...

Cara Mengatasi Error SQLSTATE[HY000] [1045] Access Denied di Laravel

Saat menjalankan php artisan migrate atau membuka aplikasi Laravel, Anda mungkin bertemu error ini:

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

Artinya: Laravel gagal login ke MySQL karena kredensial database salah. Ini murni soal konfigurasi koneksi, bukan bug kode. Berikut penyebab dan solusinya.

1. Cek Kredensial di File .env

Penyebab paling umum: username, password, atau nama database di .env tidak cocok dengan yang ada di MySQL. Periksa bagian ini:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=user_database
DB_PASSWORD=password_database

Pastikan setiap nilai benar-benar sama dengan kredensial database Anda. Kesalahan ketik satu huruf saja sudah memicu error 1045.

2. Password Kosong? Kosongkan dengan Benar

Jika MySQL lokal Anda tanpa password (umum di XAMPP/Laragon), DB_PASSWORD harus dibiarkan kosong:

DB_PASSWORD=

Jangan tulis DB_PASSWORD=null atau DB_PASSWORD="" karena bisa diartikan sebagai password literal.

3. Clear Config Cache Setelah Ubah .env

Laravel sering menyimpan config lama di cache. Setelah mengubah .env, wajib bersihkan:

php artisan config:clear
php artisan cache:clear

Banyak orang sudah membenarkan .env tapi error tetap muncul โ€” ternyata hanya karena config lama masih ter-cache.

4. User MySQL Tidak Punya Akses ke Database

Kadang user ada, tapi belum diberi hak akses ke database tertentu. Login ke MySQL dan beri privilege:

GRANT ALL PRIVILEGES ON nama_database.* TO 'user_database'@'localhost';
FLUSH PRIVILEGES;

5. Host Salah (localhost vs 127.0.0.1)

Pada beberapa konfigurasi, localhost dan 127.0.0.1 diperlakukan berbeda oleh MySQL (socket vs TCP). Jika satu gagal, coba yang lain di DB_HOST.

Khusus Shared Hosting cPanel

Di cPanel, nama database dan user biasanya diberi prefix akun, misalnya namaakun_dbblog dan namaakun_userblog. Gunakan nama lengkap dengan prefix-nya di .env, dan set DB_HOST=localhost.

Kesimpulan

Error SQLSTATE 1045 selalu berujung pada satu hal: kredensial database di .env tidak cocok atau user tidak punya akses. Periksa .env, jalankan config:clear, dan pastikan user punya privilege. Kalau Anda baru deploy ke hosting dan bertemu error 500 setelah ini, lihat juga panduan kami tentang mengatasi Error 500 Internal Server Error di Laravel.

sqlstate 1045 access denied for user laravel error koneksi database laravel laravel access denied sqlstate hy000 1045
Bagikan artikel
Kembali

Komentar (0)

Punya pertanyaan atau tambahan? Tulis di bawah โ€” tak perlu login.

Membalas komentarโ€ฆ batal

Belum ada komentar. Jadilah yang pertama!

๐Ÿš€ Partner Recommendation

Butuh Source Code & Aplikasi Premium?

Download aplikasi Laravel, POS, Sekolah, Klinik, ERP, dan source code siap pakai di GudangCode.

GudangCode
  • โœ” Source Code Premium
  • โœ” Sistem Siap Pakai
  • โœ” Lifetime Update
  • โœ” Membership Lifetime
  • โœ” Update Aplikasi Harian
Daftar Membership โ†’