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!
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!
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:
php artisan config:clear
php artisan cache:clear
php artisan config:cache
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;
Masih di MySQL, cek apakah database yang kamu pakai di .env sudah dibuat:
SHOW DATABASES;
Kalau belum ada, buat:
CREATE DATABASE nama_database_kamu;
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.
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!
Anda yang menggunakan macOS, dan running migration biasanya akan muncul error ini. Yang menandakan bahwa Laravel tidak dapat terhubung ke database MySQL Anda.
Ubuntu hadir sebagai solusi gratis, aman, dan ramah pengguna. Cocok untuk kerja, coding, dan hiburan tanpa ribet dan tanpa biaya lisensi!