
Bu rehber, Ubuntu 24.04 LTS üzerinde yeni bir MySQL 8.4 LTS sunucusu hazırlamayı anlatır. Paket kaynağını doğruladıktan sonra yerel erişimi, uygulama hesabını ve ayrı veritabanına geri yüklemeyi kontrol edeceğiz. Mevcut bir MySQL/MariaDB veri dizinini yükseltmek veya dönüştürmek bu kurulumun kapsamı değildir.

Görselin adım adım açıklaması
- Bağlan: Uygulama için ayrı hesap kullan.
- Doğrula: Kullanıcı ve kaynak adresini sınırla.
- Yetkilendir: Yalnız gerekli veritabanına erişim ver.
- Koru: Yedek al ve geri yüklemeyi dene.
Başlamadan önce
Sudo yetkili bir kullanıcı, sunucu konsoluna erişim ve yeterli boş disk gerekir. Mevcut veriyi ve /etc/mysql yapılandırmasını yedekleyin. Aşağıdaki kontroller kurulu başka bir veritabanı gösteriyorsa paket değişimine devam etmeyin; ürünün resmî yükseltme/geçiş yolunu seçin.
cat /etc/os-release
dpkg-query -W 'mysql*' 'mariadb*' 2>/dev/null
ss -lnt | awk '$4 ~ /:3306$/ {print}' Ubuntu deposundaki mysql-server adının tek başına 8.4 anlamına gelmediğine dikkat edin. Sürüm ve paketin geldiği depo birlikte doğrulanmalıdır.
Resmî APT kaynağını seçin
MySQL APT hızlı başlangıç belgesindeki bağlantıdan güncel mysql-apt-config paketini indirin. Aynı belgede açıklanan imza/bütünlük doğrulamasını tamamlayın; üçüncü taraf kurulum betiği çalıştırmayın. İndirilen tek dosyanın gerçek adını sudo dpkg -i komutuna verin; dosya adı içinde sürüm yer tutucusu bırakmayın. Seçim ekranında Ubuntu sürümünü ve mysql-8.4-lts serisini kontrol edin.
sudo apt-get update
apt-cache policy mysql-community-server mysql-server Aday sürüm 8.4.x ve beklenen kaynak Oracle MySQL deposu olmalıdır. APT imza hatası verirse durun; imza kontrolünü kapatmayın. Ardından yeni sunucu paketini kurun:
sudo apt-get install mysql-server
sudo systemctl enable --now mysql
sudo systemctl status mysql --no-pager
mysql --version Kurulumun belirlediği yönetici kimlik doğrulamasını kullanın. Parolalı root hesabında mysql -u root -p parolayı etkileşimli ister. Yalnız socket kimlik doğrulaması gerçekten yapılandırılmışsa sudo mysql kullanın. Bir yöntemin reddedilmesi parola sıfırlama gerekçesi değildir; önce kurulum seçimini kontrol edin.
Sunucuyu ve erişim sınırını doğrulayın
Yönetici oturumunda:
SELECT VERSION(), CURRENT_USER();
SHOW VARIABLES WHERE Variable_name IN
('bind_address','port','require_secure_transport','character_set_server');
SELECT User, Host, plugin FROM mysql.user; Bu rehberde uygulama aynı sunucudadır; 3306 portunu internete açmak gerekmez. Yerel socket erişimini tercih edin. Uzaktan uygulama gerekiyorsa özel ağ, izinli kaynak adresleri ve doğrulanan TLS sertifikası için ayrı tasarım yapın. MySQL hesapları kullanıcı@kaynak biçimindedir; 'fc_app'@'localhost' bir uzak bağlantı hesabı değildir.
Gereksiz hesabı kaldırmanız gerekiyorsa önce sahibi ve kullanımını doğrulayın, sonra DROP USER kullanın. mysql.user tablosuna doğrudan UPDATE/DELETE uygulamayın. Hesap yönetiminde CREATE USER, ALTER USER, GRANT ve REVOKE kullanılır; bunlardan sonra FLUSH PRIVILEGES gerekmez.
Uygulamaya yalnız gereken yetkileri verin
Aşağıdaki örnekte appdb yeni bir eğitim veritabanıdır. Aynı ad zaten kullanılıyorsa durun ve ayrı bir test adı seçin. Üretilen parolayı parola yöneticisine kaydedin; ekran görüntüsü veya iş günlüğüne taşımayın.
CREATE DATABASE appdb
CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
CREATE TABLE appdb.tasks (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200) NOT NULL,
done BOOLEAN NOT NULL DEFAULT FALSE
) ENGINE=InnoDB;
CREATE USER 'fc_app'@'localhost' IDENTIFIED BY RANDOM PASSWORD;
GRANT SELECT, INSERT, UPDATE, DELETE ON appdb.* TO 'fc_app'@'localhost';
SHOW GRANTS FOR 'fc_app'@'localhost'; Uygulama root hesabını kullanmamalıdır. Şema değiştiren dağıtımlar için gerekiyorsa ayrı bir migrasyon hesabına yalnız ilgili veritabanında gereken DDL yetkilerini verin; çalışma zamanı hesabına global *.* yetkileri eklemeyin.
Başarılı ve reddedilen işlemleri deneyin
mysql --protocol=SOCKET --default-character-set=utf8mb4 -u fc_app -p appdb INSERT INTO tasks(title) VALUES ('İstanbul yedeği 🚀');
SELECT id, title, done FROM tasks;
CREATE TABLE permission_probe(id INT); İlk iki işlem başarılı olmalı; son işlem sınırlı uygulama hesabında yetki hatasıyla reddedilmelidir. Bu ret, kurulumu geniş yetki vererek “düzeltmeniz” gereken bir hata değildir. utf8mb4, dört baytlı Unicode karakterlerini de saklar; eski utf8/utf8mb3 tercihini yeni şemalara taşımayın.
Yedek ve geri dönüş kontrolü
Kurulumun tamamlanma ölçütü yalnız servisin yeşil görünmesi değildir. MySQL yönetim rehberindeki InnoDB dump örneğini ayrı appdb_restore veritabanına yükleyin; satırları, Türkçe/emoji metnini ve gerekli nesneleri karşılaştırın. Kullanıcılar ve yetkiler uygulama veritabanı dump’ının içinde değildir; bunları ayrıca güvenli biçimde yönetin.
Başlatma hatasında sudo journalctl -u mysql -n 80 --no-pager çıktısını ve yapılandırma değişikliklerini inceleyin. Mevcut veri dizinini silmeyin veya yeniden initialize etmeyin. Yapılandırma değişikliği öncesi kopyaya dönün; sürüm düşürme veya veri dizini dönüştürme işlemini sıradan paket geri alması gibi ele almayın.
Kaynaklar
- Oracle: MySQL APT deposuyla kurulum
- MySQL 8.4: CREATE USER ve parola seçenekleri
- MySQL 8.4: GRANT ve yetki kapsamı
- MySQL 8.4: utf8mb4 karakter kümesi
- Ubuntu: sürüm ve destek dönemleri
Teknik içerik ve kaynaklar 4 Ekim 2026 tarihinde gözden geçirildi. Sürüm veya sağlayıcı değişikliğinde ilgili resmî belgeyi yeniden kontrol edin.
Bir yanıt yazın