Sagiyo Blog

SOLVED: Laravel 12 Error SQLSTATE[HY000] [1045] Access Denied for User

Sebagian besar developer melupakan langkah ini. Jika password kamu menggunakan karakter khusus, seperti '#' maka tambahkan tanda petik di awal dan akhir password kamu, contoh: ...

Sabtu, 12 April 2025 Pukul 10:17 WIB | Views: 58x

SOLVED: Laravel 12 Error SQLSTATE[HY000] [1045] Access Denied for User

Saat menjalankan proyek Laravel 12 di hosting, sebut ketika menjalankan perintah "php artisan migrate" atau "php artisan cache:clear" kamu mungkin mendapati error seperti ini:

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


Masalah ini cukup umum dan sering bikin frustasi, apalagi kalau kamu baru selesai setup Laravel dan langsung muncul error. Tapi tenang, ini bukan bug Laravel, melainkan masalah koneksi ke database. Yuk kita bahas penyebab dan cara mengatasinya secara tuntas!

Penyebab Error


Laravel tidak bisa login ke database karena:
1. Username atau password yang diberikan tidak cocok dengan yang ada di MySQL.
2. User 'sagiyo' belum dibuat di MySQL.
3. Database belum tersedia.
4. Port atau host salah.
5. Cache config Laravel belum dibersihkan.

Ok, kita langsung praktek!

1. Periksa .env File. Buka file .env di root project Laravel kamu. Pastikan konfigurasi database sesuai:


DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_kamu
DB_USERNAME=sagiyo
DB_PASSWORD=isi_password_kamu


Pastikan:

DB_USERNAME = user MySQL kamu (sagiyo)
DB_PASSWORD = password yang benar untuk user tersebut
DB_DATABASE = nama database yang sudah dibuat


Setelah mengubah .env, jalankan:


2. Cek Apakah User sagiyo Ada di MySQL


Masuk ke MySQL:

mysql -u root -p


Lalu jalankan perintah:

SELECT User, Host FROM mysql.user WHERE User = 'sagiyo';


Jika tidak ada hasil, berarti user sagiyo belum dibuat. Kamu bisa membuatnya:

CREATE USER 'sagiyo'@'localhost' IDENTIFIED BY 'passwordkamu';
GRANT ALL PRIVILEGES ON *.* TO 'sagiyo'@'localhost';
FLUSH PRIVILEGES;


3. Pastikan Database-nya Ada


Masih di MySQL, cek apakah database yang kamu pakai di .env sudah dibuat:

SHOW DATABASES;


Kalau belum ada, buat:

CREATE DATABASE nama_database_kamu;


4. Restart MySQL & Web Server


Kadang, perubahan tidak terbaca kalau server belum direstart.

Untuk Linux:

sudo service mysql restart
php artisan serve


Untuk XAMPP:
Klik Stop, lalu Start ulang MySQL dan Apache.

Error Masih Muncul?


Coba beberapa langkah tambahan:
1. Gunakan 127.0.0.1 alih-alih localhost di .env
2. Periksa apakah MySQL menggunakan port non-standar (default: 3306)
3. Terakhir mungkin yang paling sepele, namun jangan diremehkan. Sebagian besar developer melupakan langkah ini. Jika password kamu menggunakan karakter khusus, seperti '#' maka tambahkan tanda petik di awal dan akhir password kamu, contoh:

Password awal:

DB_PASSWORD=Indonesia123#


Ubah menjadi:

DB_PASSWORD="Indonesia123#"


Jangan lupa untuk save setelah melakukan perubahan .env. Semoga dilancarkan!


Artikel lainnya

SOLVED: SQLSTATE[HY000] [2002] Connection refused

Anda yang menggunakan macOS, dan running migration biasanya akan muncul error ini. Yang menandakan bahwa Laravel tidak dapat terhubung ke database MySQL Anda.

Selengkapnya

SOLVED: SQLSTATE[HY000] [2002] Connection refused

Saatnya Beralih ke Ubuntu: Gratis, Aman, dan Andal!

Ubuntu hadir sebagai solusi gratis, aman, dan ramah pengguna. Cocok untuk kerja, coding, dan hiburan tanpa ribet dan tanpa biaya lisensi!

Selengkapnya

Saatnya Beralih ke Ubuntu: Gratis, Aman, dan Andal!