
MySQL/MariaDB Temel Yönetim: Veritabanı, Kullanıcı ve Yetki Yönetimi
MySQL ve MariaDB veritabanı yönetimi. Veritabanı ve tablo oluşturma, kullanıcı yönetimi, yetkilendirme, yedekleme ve temel SQL komutları.
MySQL/MariaDB Temel Yönetim
MySQL ve MariaDB, web uygulamalarında en yaygın kullanılan ilişkisel veritabanı yönetim sistemleridir. MariaDB, MySQL'in topluluk destekli fork'udur ve büyük ölçüde uyumludur.
Kurulum
Ubuntu/Debian:
apt install mysql-server # MySQL
apt install mariadb-server # MariaDB
systemctl enable --now mysql # veya mariadb
RHEL/Rocky Linux:
dnf install mysql-server # MySQL
dnf install mariadb-server # MariaDB
systemctl enable --now mysqld # veya mariadb
Güvenli Kurulum
mysql_secure_installation
# Sorular:
# - Root şifresi belirle
# - Anonim kullanıcıları kaldır: Y
# - Root'un uzaktan girişini kapat: Y
# - Test veritabanını kaldır: Y
# - Ayrıcalık tablolarını yeniden yükle: Y
MySQL'e Bağlanma
# Root olarak bağlan
mysql -u root -p
# Belirli veritabanına bağlan
mysql -u kullanici -p veritabani_adi
# Komut satırında çalıştır
mysql -u root -p -e "SHOW DATABASES;"
Veritabanı Yönetimi
-- Veritabanlarını listele
SHOW DATABASES;
-- Veritabanı oluştur
CREATE DATABASE sitem_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Veritabanı seç
USE sitem_db;
-- Veritabanı sil
DROP DATABASE test_db;
-- Tablo listesi
SHOW TABLES;
-- Tablo yapısı
DESCRIBE kullanicilar;
SHOW CREATE TABLE kullanicilar;
Tablo Oluşturma
CREATE TABLE kullanicilar (
id INT AUTO_INCREMENT PRIMARY KEY,
kullanici_adi VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
sifre_hash VARCHAR(255) NOT NULL,
olusturulma_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
aktif BOOLEAN DEFAULT TRUE,
INDEX idx_email (email)
) ENGINE=InnoDB;
-- Tablo değiştir
ALTER TABLE kullanicilar ADD COLUMN telefon VARCHAR(20);
ALTER TABLE kullanicilar DROP COLUMN telefon;
ALTER TABLE kullanicilar MODIFY COLUMN email VARCHAR(150);
Temel SQL Komutları
-- Veri ekle
INSERT INTO kullanicilar (kullanici_adi, email, sifre_hash)
VALUES ('ahmet', 'ahmet@sitem.com', 'hash_degeri');
-- Veri sorgula
SELECT * FROM kullanicilar WHERE aktif = 1;
SELECT kullanici_adi, email FROM kullanicilar ORDER BY id DESC LIMIT 10;
-- Veri güncelle
UPDATE kullanicilar SET aktif = 0 WHERE email = 'ahmet@sitem.com';
-- Veri sil
DELETE FROM kullanicilar WHERE id = 5;
-- JOIN örneği
SELECT k.kullanici_adi, y.baslik
FROM kullanicilar k
INNER JOIN yazilar y ON k.id = y.kullanici_id;
Kullanıcı Yönetimi
-- Kullanıcı oluştur
CREATE USER 'webkullanici'@'localhost' IDENTIFIED BY 'guclu_sifre_2024!';
-- Uzaktan erişim için
CREATE USER 'webkullanici'@'192.168.1.%' IDENTIFIED BY 'guclu_sifre_2024!';
-- Kullanıcıları listele
SELECT User, Host FROM mysql.user;
-- Kullanıcı şifresi değiştir
ALTER USER 'webkullanici'@'localhost' IDENTIFIED BY 'yeni_sifre';
-- Kullanıcı sil
DROP USER 'eskikullanici'@'localhost';
Yetki Yönetimi
-- Tüm yetkiler ver
GRANT ALL PRIVILEGES ON sitem_db.* TO 'webkullanici'@'localhost';
-- Sadece okuma yetkisi
GRANT SELECT ON sitem_db.* TO 'raporkullanici'@'localhost';
-- Belirli tablo yetkileri
GRANT SELECT, INSERT, UPDATE ON sitem_db.kullanicilar TO 'webkullanici'@'localhost';
-- Yetkileri uygula
FLUSH PRIVILEGES;
-- Yetkileri görüntüle
SHOW GRANTS FOR 'webkullanici'@'localhost';
-- Yetkiyi kaldır
REVOKE INSERT ON sitem_db.* FROM 'webkullanici'@'localhost';
Yedekleme ve Geri Yükleme
# Tek veritabanı yedekle
mysqldump -u root -p sitem_db > sitem_db_backup.sql
# Tüm veritabanları yedekle
mysqldump -u root -p --all-databases > all_databases.sql
# Yedekten geri yükle
mysql -u root -p sitem_db < sitem_db_backup.sql
# Sıkıştırılmış yedek
mysqldump -u root -p sitem_db | gzip > sitem_db_$(date +%Y%m%d).sql.gz
# Otomatik yedekleme (cron)
# 0 2 * * * mysqldump -u root -p'sifre' sitem_db > /backups/sitem_$(date +%Y%m%d).sql
Performans İzleme
-- Aktif bağlantılar
SHOW PROCESSLIST;
-- Yavaş sorguları göster
SHOW VARIABLES LIKE 'slow_query_log';
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;
-- Tablo istatistikleri
SHOW TABLE STATUS FROM sitem_db;
-- Index kullanımı
EXPLAIN SELECT * FROM kullanicilar WHERE email = 'ahmet@sitem.com';
my.cnf Temel Ayarları
# /etc/mysql/my.cnf
[mysqld]
# Bağlantı limiti
max_connections = 200
# Tampon boyutları (RAM'in %25-50'si)
innodb_buffer_pool_size = 1G
# Slow query log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
# Karakter seti
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Büyükweb cPanel hosting paketlerinde phpMyAdmin ile MySQL veritabanlarınızı görsel olarak yönetebilirsiniz.
Veritabani Performans Optimizasyonu
Veritabani web uygulamalarinin kalbidir.
MySQL/MariaDB Tuning
innodb_buffer_pool_size'i RAM'in %60-70'ine ayarlayin. slow_query_log ile yavas sorgulari tespit edin. max_connections optimize edin.
Indeksleme
WHERE, JOIN, ORDER BY sutunlarina indeks ekleyin. EXPLAIN ile sorgu planlari analiz edin. Composite index kullanin.
Baglanti Havuzu
ProxySQL ile gelismis baglanti yonetimi. Connection pooling ile maliyet azaltma. Persistent connections kullanin.
Replikasyon
Master-Slave ile okuma yukunu dagitin. Galera Cluster ile multi-master yuksek erisilebilirlik. Semi-senkron replikasyon degerlendirin.
Yedekleme
mysqldump mantiksal, xtrabackup fiziksel yedek. Binary log ile point-in-time recovery. Incremental yedekleme ile tasarruf.
Sik Sorulan Sorular
MySQL mi PostgreSQL mi?
MySQL cogu web uygulamasi ile uyumlu. PostgreSQL gelismis veri tipleri ve JSON icin ideal. CMS'ler genelde MySQL kullanir.
Veritabanim buyudu ne yapmaliyim?
Gereksiz verileri temizleyin, tablo optimize edin, arsivleme yapin, partitioning kullanin.
Ne siklikla yedek almaliyim?
Kritik veritabanlari saatlik, standart siteler gunluk. Buyuk degisikliklerden once manuel yedek.
Sonuc
Veritabani optimizasyonu uygulama performansini dogrudan etkiler. Indeksleme, tuning ve yedekleme ile veri katmaninizi guclendirin.
Veritabani Boyut Yonetimi
Buyuk Tablolar icin Stratejiler
- Partitioning: Tarihe gore tablolari bolumlendirin. Sorgu performansi artar.
- Arsivleme: Eski verileri arsiv tablolarina tasiyin.
- Sikistirma: InnoDB sikistirmasi ile disk kullanimini %50-75 azaltin.
WordPress Veritabani Optimizasyonu
- wp_options autoload: Gereksiz autoload kayitlari temizleyin.
- Post revisions: wp-config.php'de WP_POST_REVISIONS sinirlayin.
- Transient veriler: Suresi dolmus verileri duzenli temizleyin.
- Spam yorumlar: Toplu silin.
Veritabani Guvenlik
- Varsayilan portu degistirin
- Uygulama bazli kullanici olusturun
- Minimum gerekli yetki verin
- SSL ile baglanti sifreleyin
- Duzenli guvenlik taramasi yapin
Turkiye'de Hosting Sektoru 2025-2026
Sektorel Trendler
Turkiye hosting pazari hizla buyumektedir. E-ticaretin genislemesi, dijitallesme calismalarI ve uzaktan calisma trendi hosting talebini artirmaktadir. NVMe SSD, HTTP/3 ve edge computing gibi teknolojiler hosting performansini yeni seviyelere tasimaktadir.
Dikkat Edilmesi Gerekenler
Hosting sektoru rekabetci bir pazardir. Dusuk fiyat vaat eden ancak altyapı kalitesinden odun veren firmalardan kacinin. Gizli maliyet, yenileme fiyat artisi ve yetersiz destek en sik karsilasilan sorunlardir.
Hosting Firmasi Secim Kriterleri
- Veri merkezi lokasyonu: Turkiye'de veri merkezi olan firmalari tercih edin
- Uptime garantisi: Minimum %99.5, ideal %99.8+
- Teknik destek: 7/24 Turkce destek zorunlu
- Guvenlik: DDoS korumasi, SSL, WAF dahil olmali
- Yedekleme: Gunluk otomatik yedekleme olmali
- Olceklenebilirlik: Ihtiyac artiginda kolayca yukseltme yapilabilmeli
- Musteri yorumlari: Gercek kullanici deneyimlerini arastirin
Buyukweb 2009'dan beri bu kriterlerin tumunu karsilayarak 5.200+ musteriye guvenilir hosting hizmeti sunmaktadir. Sorulariniz icin 0850 302 60 70 numarasini arayabilir veya destek@buyukweb.com adresine yazabilirsiniz.
Sik Yapilan Hosting Hatalari
Hosting secimi ve yonetiminde en sik karsilasilan hatalar:
1. Sadece Fiyata Bakmak
En ucuz hosting her zaman en iyi secim degildir. Performans, guvenlik ve destek kalitesi fiyattan daha onemlidir. Dusuk maliyetli hostinglerde yenileme fiyatlari genellikle cok daha yuksektir.
2. Yedekleme Almamak
Otomatik yedekleme olsa bile, onemli degisikliklerden once manuel yedek almak hayati onem tasir. Yedeklerin geri yuklenebilirligini test etmeyen sirketler veri kaybi yasadiginda ciddi sorunlarla karsilasir.
3. Guncellemeleri Ertelemek
WordPress, eklentiler ve isletim sistemi guncellemelerini ertelemek guvenlik aciklarına davetiye cikarir. Otomatik guvenlik guncellemeleri yapilandirmak en temel onlemdir.
4. SSL Kullanmamak
Hala SSL sertifikasi olmayan web siteleri mevcut. SSL olmadan Google siralama duser, ziyaretci guveni azalir ve veri guvenligi tehlikeye girer. Ucretsiz Let's Encrypt sertifikasi bile yeterlidir.
5. Kaynak Planlamasi Yapmamak
Trafik artisina hazirliksiz yakalanmak, sitenizin cokmesine neden olabilir. Trafik trendlerini izleyin ve ihtiyac halinde kaynakları zamaninda artirin.
Baslangic Rehberi: Ilk Adimlar
Bu konuda yeniyseniz, asagidaki adimlarla baslayabilirsiniz:
Adim 1: Ihtiyac Analizi
Projenizin gereksinimlerini belirleyin. Trafik beklentisi, disk alani ihtiyaci, veritabani boyutu ve ozel yazilim gereksinimleri listenizin basinda olmalidir.
Adim 2: Uygun Hizmet Secimi
Ihtiyaciniza gore paylasimli hosting, VDS veya dedicated sunucu secin. Buyukweb.com uzerinden paketleri karsilastirabilirsiniz.
Adim 3: Kurulum ve Yapilandirma
Hosting paketinizi aldiktan sonra domain yonlendirmesi, SSL kurulumu ve uygulama kurulumunu yapin. cPanel ve Plesk ile bu islemler oldukca kolaydir.
Adim 4: Guvenlik Onlemleri
SSL sertifikasi, guclu sifre politikasi, duzenli yedekleme ve guvenlik guncellemelerini ilk gunden uygulayin.
Adim 5: Izleme ve Bakım
Duzenli yedekleme kontrolu, performans izleme ve guvenlik taramasi ile sunucunuzun sagligini koruyun.
Bu adimlarda herhangi bir noktada takilirtsaniz Buyukweb teknik destek ekibi size yardimci olacaktir. Ucretsiz danismanlik icin bize ulasin.
Etiketler:

