Sebelum masuk ke routing dan controller, kita perlu pastikan koneksi database sudah beres. Di episode ini kita setting .env supaya Laravel bisa bicara dengan MySQL yang dijalankan Laravel Herd.
Koneksi MySQL berhasil, migration bawaan Laravel jalan tanpa error.
Kenapa ada dua file: .env dan .env.example?
Ini poin yang sering bikin bingung pemula:
.env— berisi kredensial asli (password database, API key, dsb). File ini tidak pernah di-commit ke git (sudah masuk.gitignoresecara default)..env.example— template tanpa rahasia sungguhan, isinya struktur yang sama tapi dengan placeholder. File ini wajib di-commit, supaya siapa pun yang clone project tahu variabel apa saja yang perlu diisi.
Kalau kamu coba git add .env, git akan menolak menambahkannya karena sudah di-ignore — itu tandanya konfigurasi .gitignore bekerja dengan benar.
Konfigurasi koneksi MySQL
Herd biasanya menjalankan MySQL di port non-default (33060) supaya tidak bentrok dengan instalasi MySQL lain di komputer. Berikut isi bagian database di .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=33060
DB_DATABASE=laravel13_blog_dasar
DB_USERNAME=root
DB_PASSWORD=password
Update juga APP_NAME dan APP_URL supaya sesuai dengan domain Herd:
APP_NAME="Blog Dasar - Laravel 13"
APP_URL=http://laravel13-blog-dasar.test
Jangan lupa terapkan perubahan yang sama di .env.example (tanpa password asli kalau kamu prefer, tapi untuk tutorial lokal ini kita samakan saja supaya gampang di-setup ulang).
Membuat database
Sebelum migration bisa jalan, database laravel13_blog_dasar harus sudah ada. Kalau kamu punya akses MySQL client:
CREATE DATABASE IF NOT EXISTS laravel13_blog_dasar;
Atau lewat PHP langsung kalau mysql CLI tidak terpasang:
php -r '
$pdo = new PDO("mysql:host=127.0.0.1;port=33060", "root", "password");
$pdo->exec("CREATE DATABASE IF NOT EXISTS laravel13_blog_dasar");
echo "Database ready\n";
'
Testing koneksi
Cara paling gampang untuk cek koneksi database jalan adalah menjalankan migration bawaan Laravel:
php artisan migrate
Kalau muncul output seperti ini, koneksi sudah beres:
INFO Preparing database.
Creating migration table ......... DONE
INFO Running migrations.
0001_01_01_000000_create_users_table ... DONE
0001_01_01_000001_create_cache_table ... DONE
0001_01_01_000002_create_jobs_table .... DONE
Catatan penting
Kalau kamu dapat error SQLSTATE[HY000] [2002] Connection refused, cek dulu apakah service MySQL di Herd sudah dinyalakan lewat Herd app (menu bar) — ini penyebab paling umum di langkah ini.
Selanjutnya
Database sudah siap. Episode berikutnya kita mulai masuk ke inti Laravel: routing dasar — bagaimana URL diterjemahkan jadi response.