Konfigurasi Database MySQL & File .env di Laravel Herd
Halo bos! Selamat datang kembali dibelajar Laravel 13.
Di artikel sebelumnya kita sudah berhasil membuat project Laravel 13 dan membukanya di browser. Sekarang saatnya menghubungkan project kita ke database.
Laravel secara default memakai SQLite (database file sederhana). Tapi karena kita akan bikin blog yang lebih “serius”, kita akan pakai MySQL — database yang paling umum dipakai di dunia nyata.
Artikel ini akan bahas dua hal penting sekaligus:
- Cara menghubungkan Laravel ke MySQL
- Memahami file .env (yang sering bikin bingung pemula)
Langsung kita mulai.
1. Apa Itu File .env?
File .env adalah tempat Laravel menyimpan konfigurasi yang berbeda-beda di setiap komputer.
Contohnya:
- Nama database
- Username & password database
- Apakah mode debug aktif atau tidak
- Kunci aplikasi (APP_KEY)
Kenapa harus dipisah?
Karena di komputer kamu (local) mungkin pakai database blog_sederhana, sementara di server production pakai database yang berbeda. Kalau semuanya ditulis di kode, nanti kacau.
Aturan emas:
- File .env → jangan pernah di-commit ke Git
- File .env.example → wajib di-commit (sebagai contoh)
Laravel sudah mengatur ini secara otomatis lewat file .gitignore.
2. Membuka File .env
Masuk ke folder project kamu:
Buka file .env pakai editor favorit kamu (VS Code, PhpStorm, Cursor, dll).
Kamu akan melihat banyak baris. Yang paling penting saat ini adalah bagian database:
Saat ini masih memakai SQLite. Kita akan ubah ke MySQL.
3. Setup MySQL di Laravel Herd
Ada dua cara:
Cara A: Paling Mudah (Herd Pro)
Kalau kamu pakai Herd Pro:
- Buka aplikasi Herd
- Pilih project blog-sederhana
- Di bagian Services, ganti Database dari SQLite ke MySQL
- Herd akan otomatis:
- Membuat database baru
- Mengubah isi file .env kamu
Selesai. Tinggal lanjut ke langkah pengujian.
Cara B: Gratis (Tanpa Herd Pro)
Kalau belum pakai Herd Pro, kamu bisa pakai salah satu opsi ini:
- DBngin (paling direkomendasikan, mudah)
- Install MySQL manual (via Homebrew di Mac atau installer resmi di Windows)
Setelah MySQL berjalan, ubah bagian database di file .env menjadi seperti ini:
Penjelasan singkat:
| Key | Arti | Contoh Nilai |
| DB_CONNECTION | Jenis database | mysql |
| DB_HOST | Alamat server database | 127.0.0.1 (local) |
| DB_PORT | Port MySQL | 3306 (default) |
| DB_DATABASE | Nama database yang akan dipakai | blog_sederhana |
| DB_USERNAME | Username MySQL | root |
| DB_PASSWORD | Password MySQL | (kosongkan jika tidak ada) |
Catatan:
Di beberapa instalasi Herd, port MySQL bisa jadi 3307 (bukan 3306). Cek di aplikasi Herd bagian Services untuk memastikan.
4. Membuat Database-nya
Sekarang kita buat database kosong bernama blog_sederhana.
Ada beberapa cara:
Cara 1: Lewat terminal (paling cepat)
Jalankan perintah berikut di dalam folder project:
Laravel akan mendeteksi bahwa database belum ada, lalu bertanya:
Laravel akan:
- Membuat database blog_sederhana
- Menjalankan migration bawaan (tabel users, cache, jobs, dll)
Kalau berhasil, kamu akan melihat output mirip seperti ini:
Cara 2: Pakai TablePlus / phpMyAdmin / HeidiSQL
Buat database baru secara manual, lalu jalankan:
5. Menguji Koneksi Database
Cara paling gampang menguji apakah Laravel sudah terhubung ke MySQL:
Lalu ketik perintah ini:
Kalau muncul sesuatu seperti PDO Object (...), berarti koneksi berhasil.
Untuk keluar dari Tinker, ketik:
6. Kenapa .env Tidak Boleh Di-commit?
Bayangkan kamu push project ke GitHub, lalu ada orang iseng buka file .env kamu. Di dalamnya ada:
- Password database
- API key pembayaran
- Secret key aplikasi
Bahaya banget, kan?
Makanya Laravel sudah mengatur agar file .env diabaikan oleh Git. Yang di-commit hanya .env.example sebagai contoh.
Setiap kali orang lain clone project kamu, mereka tinggal:
Lalu mengisi sendiri konfigurasi database mereka.
Ringkasan yang Perlu Kamu Ingat
- File .env = konfigurasi lokal (rahasia)
- File .env.example = contoh (boleh dibagikan)
- Untuk MySQL, ubah DB_CONNECTION menjadi mysql
- Nama database, username, dan password harus sesuai dengan yang ada di MySQL kamu
- Setelah mengubah .env, jalankan php artisan migrate untuk menguji
Tutorial terkait
Query Builder vs Eloquent — Kapan Pakai yang Mana?
Laravel sebenarnya punya dua lapisan untuk mengakses database: Query Builder (DB::table()) yang lebih rendah level, dan Eloquent (Post::query()) yang dibangun di atasnya
Model & Eloquent ORM Dasar di Laravel 13
Tabel sudah ada di database, tapi kalau mau query data, kita butuh cara yang lebih ekspresif daripada SQL mentah. Di sinilah Eloquent, ORM (Object-Relational Mapping) bawaan Laravel, berperan
Migration Dasar — Membuat Tabel Posts dan Categories
Sampai episode ini kita belum punya tabel posts atau categories sama sekali — controller kita masih mengembalikan teks placeholder. Saatnya bikin struktur database sungguhan lewat migration