dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Home/Hata Teşhis Kütüphanesi/mysql-2003-cant-connect-to-server
MySQL
MySQL 8.0 - 8.4Ağ & Bağlantı
5 dk okuma
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.5' (111)

MySQL Uzak Bağlantı Reddi (Error 111): bind-address, Güvenlik Grubu ve Port İncelemesi

127.0.0.1 bind kısıtlaması, skip-networking yapılandırması ve bulut güvenlik gruplarının port 3306'yı engellemesi; acil teşhis ve kalıcı güvenli erişim.

İnceleyen:Kıdemli Veritabanı Mimarı & SRE (dataiotech Labs)
Test Edilen Sürümler: MySQL 8.0 / 8.4 LTS / 9.0

Operasyonel Doğrulama & Güvenilirlik Standardı

Son Teknik İnceleme: 2 Kasım 2026
Test Edilen SürümlerMySQL 8.0.36, 8.4.1 LTS (Ubuntu 24.04 / Debian 12)
Gerekli Yetkiİşletim sistemi root/sudo ve ağ erişimi
Risk Seviyesi
Highbind-address ayarını 0.0.0.0 yapmak güvenlik duvarı kısıtlaması yoksa sunucuyu internete açar
Beklenen Çıktınc -zv veya telnet ile 3306 portuna başarılı TCP handshake
Geri Dönüş (Rollback) Planı:/etc/mysql/my.cnf içinde bind-address değerini eski IP adresine çekip systemctl restart mysql
MySQL Docs: Can't connect to MySQL server
İlk 60 Saniye Teşhis Protokolü:

Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.

▸Belirti

Uzak sunucudan veya pod içerisinden MySQL'e bağlanırken istemci anında düşer:

plaintext
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.5' (111)

▸Sahada Ne Görürsün?

MySQL sunucusu çalışmaktadır (systemctl status mysql yeşildir). Ancak uzak uygulama sunucuları Connection refused (111) hatası alır.


▸Kök Neden Matrisi

OlasılıkKök NedenAçıklama
%60`bind-address = 127.0.0.1` TuzağıMySQL varsayılan olarak yalnızca localhost soketini dinler. Uzak IP'lerden gelen SYN paketleri doğrudan işletim sistemi tarafından reddedilir.
%25Security Group / Firewall EngeliAWS/GCP güvenlik grubunda port 3306 için ingress kuralı eksiktir veya ufw engellemektedir.
%15`skip-networking` AktifKonfigürasyonda TCP dinlemesi tamamen kapatılmıştır.

▸ACİL RUNBOOK (0-5dk)

bash
# 1. Portun açık ve dinlemede olup olmadığını kontrol et ss -tulpn | grep 3306 # 2. my.cnf dosyasındaki bind-address ayarını kontrol et grep -rn "bind-address" /etc/mysql/ # 3. bind-address ayarını tüm arayüzlere aç sudo sed -i 's/bind-address.*/bind-address = 0.0.0.0/' /etc/mysql/mysql.conf.d/mysqld.cnf # 4. Servisi yeniden başlat sudo systemctl restart mysql # 5. İstemciden bağlantıyı test et nc -zv -w 3 10.0.0.5 3306

▸KALICI BLUEPRINT

  1. 1Ağ İzolasyonu: bind-address = 0.0.0.0 tanımlanmalı ancak port 3306 internete ASLA açılmamalı; yalnızca uygulama alt ağına (VPC / Subnet CIDR) izin veren Security Group kuralları konmalıdır.
  2. 2MySQL Router / ProxySQL: Uygulamalar veritabanına doğrudan IP ile değil, aradaki ProxySQL veya MySQL Router üzerinden bağlanmalıdır.

▸Doğrulama

bash
ss -tulpn | grep 3306 # Çıktı: 0.0.0.0:3306 LISTEN göstermelidir

Diğer Veritabanı Hata Teşhisleri

Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.

Tüm Hatalar (82)