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.
Operasyonel Doğrulama & Güvenilirlik Standardı
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:
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ık | Kök Neden | Açı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. |
| %25 | Security Group / Firewall Engeli | AWS/GCP güvenlik grubunda port 3306 için ingress kuralı eksiktir veya ufw engellemektedir. |
| %15 | `skip-networking` Aktif | Konfigürasyonda TCP dinlemesi tamamen kapatılmıştır. |
▸ACİL RUNBOOK (0-5dk)
# 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
- 1Ağ İzolasyonu:
bind-address = 0.0.0.0tanı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. - 2MySQL Router / ProxySQL: Uygulamalar veritabanına doğrudan IP ile değil, aradaki ProxySQL veya MySQL Router üzerinden bağlanmalıdır.
▸Doğrulama
ss -tulpn | grep 3306
# Çıktı: 0.0.0.0:3306 LISTEN göstermelidirDiğer Veritabanı Hata Teşhisleri
Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.
MySQL ERROR 1045 Access denied: root Şifresi Sıfırlama Rehberi
MySQL 1045 hatasının dört nedeni, "using password: YES/NO" ayrımının anlamı ve kilitli kalınca --init-file ile güvenli şifre sıfırlama.
MySQL Deadlock ERROR 1213: Grafiği Okuma ve Kalıcı Önleme
MySQL 1213 deadlock hatasının nedeni, LATEST DETECTED DEADLOCK çıktısını okuma, gap lock kaynaklı kilitlenmeler ve uygulama tarafında retry tasarımı.
MySQL Lock wait timeout exceeded: Bloklayan İşlemi Bulma
1205 lock wait timeout hatasında bloklayan işlemi performance_schema ile bulma, KILL kararını verme ve kilidi kalıcı olarak azaltma yöntemleri.