Buat kamu yang develop pakai WSL tapi databasenya jalan di Windows (Laragon), kadang ketemu error:
mysql -h 172.xx.xx.1 -P 3306 -u root -p
Hasilnya:
ERROR 2003 (HY000): Can't connect to MySQL server on '172.xx.xx.1:3306' (110)
Artinya WSL nggak bisa nyambung ke MySQL di Windows. Tenang, solusinya gampang kok ✨
🔧 Step 1 – Buka Port 3306 di Firewall Windows
Buka PowerShell (Run as Administrator) lalu jalankan:
netsh advfirewall firewall add rule name="Allow MySQL 3306" dir=in action=allow protocol=TCP localport=3306
📸 [Screenshot: PowerShell setelah rule ditambahkan]
🔧 Step 2 – Cari IP Windows dari WSL
Di terminal WSL, jalankan:
ip route show | grep default | awk '{print $3}'
Contoh hasil: 172.21.224.1
📸 [Screenshot: output perintah dengan IP Windows]
🔧 Step 3 – Test Koneksi Langsung
Coba connect dari WSL:
mysql -h 172.21.224.1 -P 3306 -u root -p
Kalau berhasil, kamu akan masuk ke prompt MySQL.
📸 [Screenshot: hasil login sukses ke MySQL dari WSL]
🔧 Step 4 – Update Config PHP
Misalnya di config/db.php
:
'hostname' => '172.21.224.1',
'port' => '3306',
'username' => 'root',
'password' => 'root',
'database' => 'db_asik',
📸 [Screenshot: editor code dengan konfigurasi database]
📝 Catatan Penting
- IP bisa berubah tiap kali restart Windows → cek ulang dengan
ip route show
. - Lebih aman bikin user khusus WSL:
CREATE USER 'wsl_user'@'%' IDENTIFIED BY 'passwordku'; GRANT ALL PRIVILEGES ON db_asik.* TO 'wsl_user'@'%'; FLUSH PRIVILEGES;
- Alternatif: install MySQL langsung di WSL atau pakai Docker biar lebih konsisten.
🎯 Kesimpulan
Kuncinya: buka port 3306 di firewall. Setelah itu, WSL bisa langsung connect ke MySQL Laragon tanpa masalah.
Jadi kalau dapet error Connection timed out, jangan panik dulu — cek firewall dulu ya 🔥