Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
Son teknik kontrol · 17.08.2026 · Ubuntu 26.04 + MySQL 8.4

Ubuntu 26.04 + MySQL 8.4 LTS: Sadece “apt install mysql-server” Değil

Ubuntu 26.04 deposunda MySQL 8.4 serisi bulunuyor. Üretim kurulumu ise paketi yüklemekten daha fazlasıdır: bind adresi, hesap modeli, yedek doğrulaması, disk davranışı ve slow query görünürlüğü birlikte tasarlanmalıdır.

Üretim notu

Veritabanı portunu internete açmadan önce gerçekten gerekli olup olmadığını sorgulayın. Yönetim kolaylığı için 0.0.0.0:3306 kullanmak saldırı yüzeyini gereksiz büyütür.

ubuntu 26.04 mysql 8.4mysql 8.4 lts kurulummysql ubuntu 26.04
TEKNİK UYGULAMA PROFİLİ
EKA CORE
Ubuntu 26.04 + MySQL 8.4

Tek uygulama aynı VPS’te çalışıyorsa MySQL’i varsayılan olarak localhost’ta tutun. Uzak erişim gerekiyorsa 3306’yı herkese açmak yerine özel ağ/VPN veya kaynak IP allow-list kullanın; uygulama için ayrı, minimum yetkili DB hesabı oluşturun.

8.4.xUbuntu 26.04 serisi
Kontrol
127.0.0.1Varsayılan tercih
Kontrol
3306/tcpMySQL portu
Kontrol
Restore > BackupYedek kuralı
Kontrol
Teknik rehber · production odaklı · resmî kaynaklar
Kısa cevap

Tek uygulama aynı VPS’te çalışıyorsa MySQL’i varsayılan olarak localhost’ta tutun. Uzak erişim gerekiyorsa 3306’yı herkese açmak yerine özel ağ/VPN veya kaynak IP allow-list kullanın; uygulama için ayrı, minimum yetkili DB hesabı oluşturun.

01

Teknik kapsam ve önemli noktalar

Ubuntu 26.04 LTS üzerinde MySQL 8.4 kurulumu, bind-address, kullanıcı yetkileri, TLS, UFW, mysqldump, slow query log ve temel InnoDB kapasite planını üretim odaklı kurun.

8.4.xUbuntu 26.04 serisi

Ubuntu resolute paket deposu MySQL 8.4 serisini sunar; güncel security/update paketi zamanla değişebilir.

127.0.0.1Varsayılan tercih

Aynı sunucudaki web uygulaması için veritabanını yalnız localhost’ta dinletmek daha dar saldırı yüzeyidir.

3306/tcpMySQL portu

Yalnız uzak erişim gerçekten gerekiyorsa ve kaynak adres sınırıyla açılmalıdır.

Restore > BackupYedek kuralı

Yedek dosyasının oluşması değil, temiz bir instance’a geri yüklenebilmesi başarı ölçütüdür.

Bu sayfada

  1. 1. Ubuntu paketinden MySQL 8.4 kurun
  2. 2. Root hesabını uygulama hesabı olarak kullanmayın
  3. 3. Bind address ve firewall aynı problemi çözmez
  4. 4. Mantıksal yedek ve restore testi
  5. 5. Slow query log’u sürekli açık bırakmadan önce eşik belirleyin
  6. 6. InnoDB buffer pool’u “RAM’in %80’i” diye kör ayarlamayın
  7. Sık sorulan sorular
02

1. Ubuntu paketinden MySQL 8.4 kurun

Üretim sunucusunda önce depo kaynağını ve aday sürümü görün; sonra paketi kurun.

Komut
sudo apt update
Komut
apt-cache policy mysql-server
Komut
sudo apt install mysql-server -y
Komut
mysql --version
Komut
systemctl status mysql --no-pager
03

2. Root hesabını uygulama hesabı olarak kullanmayın

Uygulama kullanıcısı yalnız kendi veritabanında gereken DML/DDL yetkilerini almalıdır. Global `ALL PRIVILEGES` çoğu web uygulaması için gereksizdir.

Migration aracı gerçekten `CREATE/ALTER` gerektirmiyorsa bu yetkileri de kaldırın. Runtime hesabı ile deploy/migration hesabını ayırmak daha güvenlidir.
`root@localhost` için socket tabanlı yönetim kullanımı, uzaktan root parolası açmaktan daha kontrollüdür.
Komut
sudo mysql -e "CREATE DATABASE uygulama CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
Komut
sudo mysql -e "CREATE USER 'uygulama'@'localhost' IDENTIFIED BY 'GUCLU_PAROLA';"
Komut
sudo mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,INDEX ON uygulama.* TO 'uygulama'@'localhost'; FLUSH PRIVILEGES;"
Komut
sudo mysql -e "SHOW GRANTS FOR 'uygulama'@'localhost';"
04

3. Bind address ve firewall aynı problemi çözmez

MySQL’in hangi arayüzde dinlediği ile hangi kaynaktan paketin kabul edildiği ayrı katmanlardır. İkisini de doğrulayın.

SenaryoBindFirewall
Web + DB aynı VPS127.0.0.13306 dışarı kapalı
Özel ağda ayrı DBÖzel IPYalnız uygulama subnet/IP
Geçici uzaktan adminÖzel IP tercihVPN veya tek kaynak IP
Komut
sudo ss -lntp | grep 3306
Komut
sudo mysql -e "SHOW VARIABLES LIKE 'bind_address';"
Komut
sudo ufw status numbered
05

4. Mantıksal yedek ve restore testi

Küçük/orta veritabanında `mysqldump` anlaşılır bir başlangıçtır; büyük sistemlerde fiziksel yedek, replika veya snapshot stratejisi ayrıca değerlendirilmelidir.

Komut
mysqldump --single-transaction --routines --triggers uygulama | gzip > uygulama-$(date +%F).sql.gz
Komut
mysql -e "CREATE DATABASE restore_test CHARACTER SET utf8mb4;"
Komut
gunzip -c uygulama-YYYY-MM-DD.sql.gz | mysql restore_test
Komut
mysql -e "SELECT table_schema,COUNT(*) tables_count FROM information_schema.tables WHERE table_schema IN ('uygulama','restore_test') GROUP BY table_schema;"
06

5. Slow query log’u sürekli açık bırakmadan önce eşik belirleyin

Amaç bütün sorguları diske dökmek değil, kullanıcı gecikmesine neden olan sorguları yakalamaktır. Log büyümesini ve hassas SQL içeriğini de dikkate alın.

Sorun yakalandıktan sonra `EXPLAIN ANALYZE` ve indeks tasarımına geçin; RAM artırmak kötü sorgunun yerini tutmaz.
Üretimde log retention/rotation olmadan slow log açmak diski doldurabilir. `logrotate` veya merkezi log planı ekleyin.
Komut
sudo mysql -e "SHOW VARIABLES WHERE Variable_name IN ('slow_query_log','long_query_time','log_output');"
Komut
sudo mysql -e "SET GLOBAL long_query_time=1.0; SET GLOBAL slow_query_log=ON;"
Komut
sudo tail -f /var/log/mysql/mysql-slow.log
07

6. InnoDB buffer pool’u “RAM’in %80’i” diye kör ayarlamayın

Aynı VPS’te PHP, web server, Redis veya queue worker varsa MySQL tüm RAM’i sahiplenemez. Önce gerçek süreç kullanımını ölçün.

Komut
free -h
Komut
ps -eo pid,comm,%mem,rss --sort=-rss | head -20
Komut
sudo mysql -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Komut
sudo mysql -e "SHOW GLOBAL STATUS LIKE 'Threads_connected';"
EKA SUNUCU · TECHNICAL

MySQL iş yükü için RAM kadar disk IOPS ve yedek planını da boyutlandırın

Veritabanı yoğun uygulamada “8 GB VPS” tek başına yeterli bir tarif değildir. Aktif veri seti, eşzamanlı bağlantı, sorgu tipi ve disk gecikmesine göre Eka Sunucu VPS/VDS planı seçebilirsiniz.

Production ilkesiÖlç → Test Et → Canlıya AlUydurma benchmark verisi kullanılmaz.
SRC

Resmî kaynaklar

Rehber hazırlanırken esas alınan birincil dokümantasyon ve teknik kaynaklar.

EKA

İlgili teknik içerikler

İlgili altyapı ve uygulama rehberleriyle devam edin.

FAQ

Sık sorulan sorular

Ubuntu 26.04 + MySQL 8.4

Ubuntu 26.04 MySQL 8.4 mü kullanıyor?

Evet, Ubuntu resolute deposunda mysql-server 8.4 serisi bulunur. Güvenlik güncellemeleriyle alt sürüm zamanla değişir; `apt-cache policy mysql-server` ile aday paketi kontrol edin.

mysql_secure_installation şart mı?

Hayır. Yaptığı kontrolleri anlayarak hesap, parola, anonim kullanıcı ve test DB politikasını elle de uygulayabilirsiniz. Önemli olan sonuçtur.

3306 portunu Cloudflare ile koruyabilir miyim?

Standart web proxy akışı bunun için tasarlanmamıştır. Veritabanı erişiminde VPN, özel ağ, SSH tunnel veya uygun TCP proxy ürünü tercih edilmelidir.

MySQL yedeğini ne sıklıkla almalıyım?

Kabul edilebilir veri kaybı süresi (RPO) belirler. Sipariş sistemiyle haftada bir yedek çoğu zaman yetersizdir; günlük/full + binlog veya daha sık strateji gerekebilir.

Top