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
- Önerilen (özel ağ kullanıyorsanız):
bind-address = 10.0.0.5
- Zorunluysa (tüm arayüzler):
bind-address = 0.0.0.0
- 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
- Root ile MySQL’e bağlanın:
sudo mysql
- IP’ye özel kullanıcı oluşturun:
CREATE USER 'genixnode_app'@'203.0.113.10' IDENTIFIED BY 'GucluBirSifre123!';
- 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
- 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
- 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)
- Kullanıcıyı TLS’e zorlayın:
ALTER USER 'genixnode_app'@'203.0.113.10' REQUIRE SSL;
- İ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
-
Root uzaktan erişimi kapalı tutun
-
user@'%' tanımlarından kaçının
-
Logları izleyin: /var/log/mysql/error.log
-
Şifreleri periyodik değiştirin
-
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.

