M
Mr Sugiarto
Developer
19 Aug 2026 2 min read

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.

Screenshot: Koneksi MySQL berhasil, migration bawaan Laravel jalan tanpa error. 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 .gitignore secara 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.

M
Mr Sugiarto

Developer

Bagian dari Series: Laravel 13 Dasar — Belajar Fundamental Lewat Blog Sederhana
Lihat Series Lengkap