Ana içeriğe geç

MySQL Uzaktan Erişim Açma (2026)

Bu rehberde ne öğreneceksiniz?​

Bu rehberde MySQL veritabanınızı uzaktan erişime güvenli biçimde açmayı öğreneceksiniz.
Yetkilendirme, firewall ve TLS ile production uyumlu yapı kuracağız.


Teknik Özet​

Bu rehber, MySQL’in varsayılan localhost kısıtını kaldırırken güvenliği korumayı hedefler.
Adımlar: bind-address → kullanıcı → UFW → test → SSL/TLS.


Ön Koşullar​

  • Ubuntu 20.04 / 22.04 / 24.04
  • MySQL 8.0 veya üzeri
  • sudo yetkisi
  • UFW aktif
  • Güncel veritabanı yedeği

MySQL’i Uzaktan Bağlantılara Açma​

MySQL varsayılan olarak sadece 127.0.0.1 üzerinden dinler.

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  • Bu dosya MySQL ağ ayarlarını içerir.

Varsayılan satırı bulun:


bind-address = 127.0.0.1

  1. Önerilen (özel ağ kullanıyorsanız):

bind-address = 10.0.0.5

  1. Zorunluysa (tüm arayüzler):

bind-address = 0.0.0.0
  1. Değişiklikleri uygulayın:

sudo systemctl restart mysql

Not: 0.0.0.0 yalnızca sıkı firewall ve IP kısıtı ile kullanılmalıdır.


Uzak MySQL Kullanıcısı Oluşturma​

  1. Root ile MySQL’e bağlanın:

sudo mysql

  1. IP’ye özel kullanıcı oluşturun:

CREATE USER 'rabisu_app'@'203.0.113.10' IDENTIFIED BY 'GucluBirSifre123!';

  1. Sadece gerekli yetkileri tanımlayın:

GRANT SELECT, INSERT, UPDATE, DELETE ON uygulama_db.* TO 'rabisu_app'@'203.0.113.10';
FLUSH PRIVILEGES;
EXIT;
  • Bu yapı least privilege prensibini uygular.

Firewall (UFW) ile Erişimi Kısıtlama​

  1. 3306 portunu sadece güvenilir IP’ye açın:

sudo ufw allow from 203.0.113.10 to any port 3306

Kuralları kontrol edin:


sudo ufw status
  • sudo ufw allow 3306 kesinlikle kullanmayın.

Uzak Bağlantıyı Test Etme​

  1. Uygulama sunucusundan bağlanın:

mysql -u rabisu_app -h VERITABANI_IP -p
  • Bağlantı açılıyorsa yapılandırma doğrudur.

SSL/TLS ile Trafiği Şifreleme (Önerilir)​

  1. Kullanıcıyı TLS’e zorlayın:

ALTER USER 'rabisu_app'@'203.0.113.10' REQUIRE SSL;

  1. İstemciden TLS ile bağlanın:

mysql --ssl-mode=REQUIRED -u rabisu_app -h VERITABANI_IP -p
  • Bu ayar, ağ üzerindeki veri sızıntılarını önler.

Güvenlik Sertleştirme Önerileri​

  1. Root uzaktan erişimi kapalı tutun

  2. user@'%' tanımlarından kaçının

  3. Logları izleyin: /var/log/mysql/error.log

  4. Şifreleri periyodik değiştirin

  5. Dinamik IP varsa WireGuard VPN tercih edin


Sıkça Sorulan Sorular (SSS)​

1. bind-address = 0.0.0.0 güvenli mi? Tek başına hayır. Firewall ile IP kısıtı şarttır.

2. Connection refused hatası alıyorum. Genelde UFW veya bind-address kaynaklıdır.

3. Root ile uzaktan bağlanabilir miyim? Önerilmez. Güvenlik riski çok yüksektir.

4. IP adresim sürekli değişiyor. VPN kullanın. % tanımı büyük güvenlik açığıdır.


Sonuç​

MySQL uzaktan erişim, doğru yapılandırıldığında güvenli ve ölçeklenebilir olur. Bind-address, kullanıcı yetkileri ve firewall birlikte kullanılmalıdır.

Yüksek performanslı ve güvenli veritabanı altyapısı için Rabisu Bulut VDS üzerinde bu yapıyı kolayca kurabilirsiniz.