Belirtiler: Communications link failure, Connection refused, Access denied for user, MySQL bağlantı hatası

Olası Nedenler

  • MySQL servisi çalışmıyor
  • Yanlış veritabanı kullanıcı adı veya şifre
  • bind-address sadece localhost'a ayarlı (uzak bağlantı reddediliyor)
  • Firewall 3306 portunu engelliyor

Adım Adım Çözüm

1. Adım

MySQL servisinin çalışıp çalışmadığını kontrol edin

bash
sudo systemctl status mysql

2. Adım

Kullanıcı adı ve şifreyi doğrudan MySQL ile test edin

bash
mysql -u kullanici -p -h 127.0.0.1 veritabani_adi

3. Adım

Uzak bağlantı gerekiyorsa /etc/mysql/mysql.conf.d/mysqld.cnf dosyasında bind-address değerini 0.0.0.0 yapın

bash
bind-address = 0.0.0.0

4. Adım

Firewall'da 3306 portunu açın

bash
sudo ufw allow 3306/tcp

5. Adım

MySQL kullanıcısına uzak erişim yetkisi verin

bash
GRANT ALL PRIVILEGES ON veritabani.* TO 'kullanici'@'%' IDENTIFIED BY 'sifre'; FLUSH PRIVILEGES;