🐬 MySQL / MariaDB Kurulumu ve Webmin ile Veritabanı Yönetimi
Hem sistem yöneticileri hem de web geliştiriciler için veritabanı kurulumu ve bunun grafiksel bir arayüz (Webmin) üzerinden yönetilmesi, iş akışını inanılmaz derecede hızlandıran bir yetenektir.
Bölüm 1: MariaDB / MySQL Kurulumu
MariaDB, günümüzde çoğu Linux dağıtımında varsayılan MySQL varyantı olarak gelir. Performansı ve MySQL ile birebir uyumlu olması nedeniyle bu eğitimde MariaDB üzerinden ilerleyeceğiz. (Komutlar MySQL için de büyük oranda aynıdır).
1. Sistem Paketlerini Güncelleyin
Kuruluma başlamadan önce sunucunuzun paket listelerini güncellemek her zaman en iyi pratiktir. SSH üzerinden sunucunuza bağlanın ve şu komutu çalıştırın:
sudo apt update && sudo apt upgrade -y
2. Veritabanı Sunucusunu Kurun
Aşağıdaki komut ile MariaDB sunucusunu ve istemcisini kurun:
sudo apt install mariadb-server mariadb-client -y
(Eğer orijinal MySQL kurmak isterseniz mariadb-server yerine mysql-server yazabilirsiniz.)
3. Kurulumu Güvenli Hale Getirin
Veritabanı kurulduğunda varsayılan ayarlar güvenlik açısından yetersizdir. Güvenlik sihirbazını başlatarak root şifresi belirleyin ve gereksiz test veritabanlarını kaldırın:
sudo mysql_secure_installation
Sihirbaz size birkaç soru soracaktır. Mevcut root şifresi sorulduğunda boş bırakıp "Enter"a basın. Sonrasında root şifresi belirlemek ve diğer güvenlik önlemleri (anonim kullanıcıları silme, root'un uzaktan erişimini kapatma vb.) için tüm sorulara Y (Yes) yanıtını verin.
Bölüm 2: Webmin Üzerinden Veritabanına Bağlanma
Webmin, Linux sunucunuzu tarayıcı üzerinden yönetmenizi sağlayan muazzam bir araçtır. Eğer sisteminizde Webmin kurulu değilse, resmi deposundan sudo apt install webmin gibi basit komutlarla
Webmin'e tarayıcınızdan giriş yapın: https://<sunucu-ip-adresiniz>:10000
1. MySQL Modülünü Bulma
Sol menüden Servers (Sunucular) sekmesini genişletin.
MySQL Database Server (MySQL Veritabanı Sunucusu) seçeneğine tıklayın.
2. İlk Giriş ve Yetkilendirme
Webmin bu modüle ilk kez tıkladığınızda veritabanına erişmek için sizden giriş bilgileri isteyebilir.
Kullanıcı adı:
rootŞifre: (Az önce
mysql_secure_installationadımında belirlediğiniz şifre)Bilgileri girip kaydettiğinizde, veritabanı yönetim paneli karşınıza çıkacaktır.
Bölüm 3: Webmin ile Veritabanı Yönetimi
Artık siyah komut ekranlarına (terminal) ihtiyaç duymadan tüm veritabanı işlemlerinizi görsel olarak yapabilirsiniz.
A. Yeni Veritabanı Oluşturma
Bir web sitesi veya uygulama için genelde ilk adım boş bir veritabanı yaratmaktır.
MySQL modülü ana ekranında, sayfanın üst kısmındaki Create a new database (Yeni bir veritabanı oluştur) bağlantısına tıklayın.
Database name (Veritabanı adı) kısmına projenizin adını yazın (örneğin:
wordpress_db).Diğer ayarları varsayılan olarak bırakıp Create (Oluştur) butonuna basın.
B. Yeni Veritabanı Kullanıcısı Oluşturma
Güvenlik gereği uygulamalar veritabanına root kullanıcısı ile bağlanmamalıdır. Her veritabanı için ayrı bir kullanıcı oluşturmak en doğrusudur.
Ana modül ekranına dönün ve User Permissions (Kullanıcı İzinleri) ikonuna tıklayın.
Sayfanın üstündeki Create a new user (Yeni kullanıcı oluştur) linkine tıklayın.
Username (Kullanıcı Adı): Örneğin
wp_userPassword (Şifre): Güçlü bir şifre belirleyin.
Hosts (Sunucular): Sadece kendi sunucunuzdan bağlantıya izin vermek için
localhostseçin.Permissions (İzinler): Bu ekranda hiçbir yetki seçmeyin. İzinleri bir sonraki adımda sadece spesifik veritabanı için vereceğiz. Create diyerek kaydedin.
C. Kullanıcıyı Veritabanına Atama (Yetkilendirme)
Oluşturduğumuz kullanıcıya, az önce oluşturduğumuz veritabanı üzerinde tam yetki vermemiz gerekiyor.
Ana ekrandan Database Permissions (Veritabanı İzinleri) ikonuna tıklayın.
Create new database permissions (Yeni veritabanı izni oluştur) seçeneğine tıklayın.
Databases (Veritabanları): Listeden
wordpress_dbisimli veritabanını seçin.Username (Kullanıcı Adı):
wp_useryazın.Hosts:
localhostyazın.Permissions (İzinler):
Select,Insert,Update,Delete,Create,Drop,Index,Altergibi standart uygulama izinlerini seçin (veya en üstteki Select all / Tümünü seç butonunu kullanın).Save (Kaydet) butonuna tıklayın.
D. Veritabanını Yedekleme (Backup) ve Geri Yükleme
Webmin ile komut satırına ihtiyaç duymadan mysqldump işlemlerini otomatize edebilirsiniz.
Yedekleme: İlgili veritabanının üzerine tıklayıp Backup Database (Veritabanını Yedekle) butonuna basarak veritabanını bir
.sqldosyası olarak sunucunuza veya bilgisayarınıza indirebilirsiniz. Hatta bunu Zamanlanmış Görevler (Cron) sekmesinden her gece otomatik olarak yapması için ayarlayabilirsiniz.İçeri Aktarma (SQL Çalıştırma): Execute SQL (SQL Çalıştır) sekmesine giderek "Run SQL from file (Dosyadan SQL çalıştır)" seçeneği ile elinizdeki bir yedeği sisteme yükleyebilirsiniz.
Özet Tablo: Terminal vs. Webmin
| İşlem | Terminal (CLI) Komutu | Webmin Arayüzü |
| Bağlantı | mysql -u root -p | Servers > MySQL Database Server |
| DB Oluşturma | CREATE DATABASE isim; | Create a new database |
| Kullanıcı Oluşturma | CREATE USER 'isim'@'localhost'... | User Permissions > Create a new user |
| Yetki Verme | GRANT ALL ON db.* TO user; | Database Permissions |
| Yedek Alma | mysqldump -u root -p db > backup.sql | İlgili DB > Backup Database |
Webmin, arka planda terminal komutlarının yaptığı her şeyi görsel olarak yaparak hata payını düşürür ve sunucu yönetimini çok daha keyifli hale getirir.
🔹 Webmin’e giriş
Tarayıcıdan:
https://SUNUCU_IP:10000
Örnek:
https://192.168.1.10:10000
📌 Linux kullanıcı adı ve şifren ile giriş yap.
6️⃣ Webmin Üzerinden MariaDB Yönetimi
Giriş yaptıktan sonra:
Servers → MySQL Database Server
Eğer MariaDB kuruluysa otomatik algılar.
7️⃣ Veritabanı Oluşturma
Create a new database
Database name:
okul_dbCreate
8️⃣ Kullanıcı Oluşturma
User Permissions
Create a new user
Username:
okul_userPassword belirle
Host:
localhostPermission:
SELECT
INSERT
UPDATE
DELETE
9️⃣ Yetki Verme (Database Bazlı)
User Permissions →
Database: okul_db →
Grant All Privileges
🔟 Tablo Oluşturma (Webmin SQL ile)
Webmin → MySQL → okul_db → Execute SQL
CREATE TABLE ogrenciler (
id INT AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(50),
soyad VARCHAR(50),
sinif VARCHAR(10),
aktif BOOLEAN DEFAULT TRUE
);
1️⃣1️⃣ Veri Ekleme
INSERT INTO ogrenciler (ad, soyad, sinif)
VALUES ('Ahmet', 'Yılmaz', '11A');
1️⃣2️⃣ Yedek Alma (Backup)
Webmin → MySQL → Backup Database
Yöntemler:
SQL Dump
Sadece veri
Sadece yapı
Zamanlanmış yedek
CLI ile yedek:
mysqldump -u root -p okul_db > okul_db_yedek.sql
1️⃣3️⃣ Geri Yükleme
mysql -u root -p okul_db < okul_db_yedek.sql
1️⃣4️⃣ Uzaktan Bağlantı Açmak (LAN için)
MariaDB config dosyası:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Bul:
bind-address = 127.0.0.1
Değiştir:
bind-address = 0.0.0.0
Servis restart:
sudo systemctl restart mariadb
Firewall aç:
sudo ufw allow 3306
1️⃣5️⃣ Güvenlik Tavsiyeleri (Okul Senaryosu)
✅ Root ile uygulama bağlanmasın
✅ Her uygulama için ayrı kullanıcı
✅ Haftalık otomatik yedek
✅ LAN dışına 3306 portu açma
✅ Fail2ban kur
✅ Güçlü parola politikası
1️⃣6️⃣ Performans Ayarları
Dosya:
/etc/mysql/mariadb.conf.d/50-server.cnf
Önemli parametreler:
innodb_buffer_pool_size = 1G
max_connections = 200
query_cache_size = 64M
1️⃣7️⃣ Okul LAN Senaryosu Örneği
Senaryo:
Pardus Server
Webmin
MariaDB
DHCP + DNS
40 istemci
ASP.NET Core / Django uygulaması
Yapı:
[İstemciler]
↓
[Switch]
↓
[Pardus Server]
├── Webmin
├── MariaDB
├── Apache/Nginx
1️⃣8️⃣ MySQL vs MariaDB Webmin Uyumluluğu
| Özellik | MariaDB | MySQL |
|---|---|---|
| Webmin destek | ✅ Tam | ✅ Tam |
| GUI tablo yönetimi | Var | Var |
| Yedekleme | Var | Var |
| Kullanıcı yetkilendirme | Var | Var |
🎯 Sonuç
Eğer:
Okul içi LAN
Eğitim amaçlı
Pardus Server
Webmin paneli kullanıyorsan
👉 MariaDB + Webmin en mantıklı seçimdir.
Yorumlar