Destek Online
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 'genixnode_app'@'203.0.113.10' IDENTIFIED BY 'GucluBirSifre123!';

  1. Sadece gerekli yetkileri tanımlayın:

GRANT SELECT, INSERT, UPDATE, DELETE ON uygulama_db.* TO 'genixnode_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 genixnode_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 'genixnode_app'@'203.0.113.10' REQUIRE SSL;

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

mysql --ssl-mode=REQUIRED -u genixnode_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 GenixNode VDS üzerinde bu yapıyı kolayca kurabilirsiniz.