Ubuntu resolute paket deposu MySQL 8.4 serisini sunar; güncel security/update paketi zamanla değişebilir.
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.
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.
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.
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.
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.
Ubuntu resolute paket deposu MySQL 8.4 serisini sunar; güncel security/update paketi zamanla değişebilir.
Aynı sunucudaki web uygulaması için veritabanını yalnız localhost’ta dinletmek daha dar saldırı yüzeyidir.
Yalnız uzak erişim gerçekten gerekiyorsa ve kaynak adres sınırıyla açılmalıdır.
Yedek dosyasının oluşması değil, temiz bir instance’a geri yüklenebilmesi başarı ölçütüdür.
Üretim sunucusunda önce depo kaynağını ve aday sürümü görün; sonra paketi kurun.
sudo apt updateapt-cache policy mysql-serversudo apt install mysql-server -ymysql --versionsystemctl status mysql --no-pagerUygulama 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.
sudo mysql -e "CREATE DATABASE uygulama CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"sudo mysql -e "CREATE USER 'uygulama'@'localhost' IDENTIFIED BY 'GUCLU_PAROLA';"sudo mysql -e "GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,INDEX ON uygulama.* TO 'uygulama'@'localhost'; FLUSH PRIVILEGES;"sudo mysql -e "SHOW GRANTS FOR 'uygulama'@'localhost';"MySQL’in hangi arayüzde dinlediği ile hangi kaynaktan paketin kabul edildiği ayrı katmanlardır. İkisini de doğrulayın.
| Senaryo | Bind | Firewall |
|---|---|---|
| Web + DB aynı VPS | 127.0.0.1 | 3306 dışarı kapalı |
| Özel ağda ayrı DB | Özel IP | Yalnız uygulama subnet/IP |
| Geçici uzaktan admin | Özel IP tercih | VPN veya tek kaynak IP |
sudo ss -lntp | grep 3306sudo mysql -e "SHOW VARIABLES LIKE 'bind_address';"sudo ufw status numberedKüçü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.
mysqldump --single-transaction --routines --triggers uygulama | gzip > uygulama-$(date +%F).sql.gzmysql -e "CREATE DATABASE restore_test CHARACTER SET utf8mb4;"gunzip -c uygulama-YYYY-MM-DD.sql.gz | mysql restore_testmysql -e "SELECT table_schema,COUNT(*) tables_count FROM information_schema.tables WHERE table_schema IN ('uygulama','restore_test') GROUP BY table_schema;"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.
sudo mysql -e "SHOW VARIABLES WHERE Variable_name IN ('slow_query_log','long_query_time','log_output');"sudo mysql -e "SET GLOBAL long_query_time=1.0; SET GLOBAL slow_query_log=ON;"sudo tail -f /var/log/mysql/mysql-slow.logAynı 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.
free -hps -eo pid,comm,%mem,rss --sort=-rss | head -20sudo mysql -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"sudo mysql -e "SHOW GLOBAL STATUS LIKE 'Threads_connected';"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.
Rehber hazırlanırken esas alınan birincil dokümantasyon ve teknik kaynaklar.
İlgili altyapı ve uygulama rehberleriyle devam edin.
Ubuntu 26.04 + MySQL 8.4
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.
Hayır. Yaptığı kontrolleri anlayarak hesap, parola, anonim kullanıcı ve test DB politikasını elle de uygulayabilirsiniz. Önemli olan sonuçtur.
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.
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.