Buyukweb
phpMyAdmin Kurulumu ve Veritabanı Yönetimi Rehberi

phpMyAdmin Kurulumu ve Veritabanı Yönetimi Rehberi

cPanel hosting'de phpMyAdmin tek tıkla erişilir — kurulum gerekmez. VDS'de güvenli kurulum, config.inc.php, IP whitelist ve SSH tunnel + GUI alternatifleriyle eksiksiz rehber.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

phpMyAdmin Kurulumu ve Veritabanı Yönetimi: Eksiksiz Rehber

WordPress siteniz birden "Error establishing a database connection" mesajı verdi. Panik yok — phpMyAdmin'i açıyorsunuz, wp_options tablosuna bakıyorsunuz, siteurl değeri yanlış yazılmış. İki satır düzeltme, kaydet, sayfa yenileniyor, site geri geliyor. Tek tıkla çözülen bu senaryo, phpMyAdmin'in ne işe yaradığını çok iyi özetliyor: SQL bilmeden bile veritabanınıza baksınız, hata kayıtlarını okuyasınız, veri aktarımı yapasınız. Bu rehberde Buyukweb perspektifinden phpMyAdmin'i nasıl kullanacağınızı ve VDS'de güvenli nasıl kuracağınızı anlatıyoruz.

Buyukweb perspektifi: cPanel paylaşımlı hosting paketlerimizde phpMyAdmin dahili olarak gelir — kurulum gerekmez. cPanel > Veritabanları > phpMyAdmin yolu tek tık yeterli. Arka planda MariaDB 10.6 LTS çalışıyor; phpMyAdmin sunucu seviyesinde korunuyor. VDS paketlerinde (₺250/ay'dan, KVM + root) phpMyAdmin'i kendiniz kurmak mümkündür; ama önerilen yol SSH tunnel + masaüstü GUI (DBeaver, HeidiSQL, MySQL Workbench). Neden? Çünkü web tabanlı phpMyAdmin ek saldırı yüzeyi açar. VDS'de yerine SSH tunnel kullanın — aşağıda her iki yolun detayı var.

phpMyAdmin Nedir?

phpMyAdmin, PHP ile yazılmış açık kaynaklı bir web arayüzüdür. MySQL ve MariaDB veritabanlarını tarayıcıdan yönetmenizi sağlar: tablo oluşturma, veri görüntüleme/düzenleme, SQL sorgusu çalıştırma, import/export, kullanıcı yetkilendirme. 1998'den beri aktif geliştirilen phpMyAdmin 5.x sürümüyle PHP 8.x üzerinde çalışır.

Ne işe yarar?

  • Veritabanı ve tablo oluşturmak/silmek
  • Kayıtları görsel tablo görünümünde okumak, düzenlemek
  • SQL sorgusu çalıştırmak (SELECT, INSERT, UPDATE, DELETE)
  • .sql dosyası import etmek — yedek yüklemek
  • Veritabanını SQL/CSV/Excel formatında export etmek
  • Kullanıcı oluşturmak ve GRANT ile yetki vermek

cPanel Hosting'de phpMyAdmin: Tek Tık Erişim

Buyukweb cPanel paketlerinde phpMyAdmin sunucu tarafında zaten kurulu ve yapılandırılmış; siz sadece giriş yapıyorsunuz.

Erişim yolu:

cPanel → Veritabanları bölümü → phpMyAdmin

cPanel oturumu açıkken phpMyAdmin sizi otomatik doğrular — ayrıca kullanıcı adı/şifre girmeniz gerekmez. Sol panelde cPanel hesabınıza ait tüm veritabanları görünür.

cPanel'de yeni veritabanı oluşturma (phpMyAdmin'den önce):

cPanel → MySQL Veritabanları → Yeni Veritabanı Oluştur
→ Yeni kullanıcı oluştur (güçlü şifre)
→ Kullanıcıyı veritabanına ekle → Tüm Ayrıcalıklar

Bu adımdan sonra phpMyAdmin'i açın; oluşturduğunuz veritabanı sol panelde hazır.

Konu cPanel (dahili) VDS (manuel kurulum)
Kurulum gereksinimi Yok — hazır gelir Apache/Nginx + PHP + MariaDB + phpMyAdmin paketi
Güvenlik Sunucu seviyesi korumalı (CageFS, CSF) Siz yapılandırırsınız
phpMyAdmin URL cPanel üzerinden yönlendirme Kendiniz belirlersiniz
MariaDB versiyonu MariaDB 10.6 LTS (Buyukweb default) Tercihinize göre
Önerilen kullanım ✅ Her kullanıcı için OK Tercih edilmez — SSH tunnel + GUI öneririz

VDS'de phpMyAdmin Kurulumu

Eğer VDS kullanıyorsanız ve phpMyAdmin kurmak istiyorsanız — uyarı önce gelsin:

Tercih etmeyin: Production VDS'de phpMyAdmin'i herkese açık bir URL'de çalıştırmak, özellikle /phpmyadmin varsayılan yolunda. Botlar bu yolu otomatik tarar; brute-force ve exploit denemeleri anında başlar. Bunun yerine: SSH tunnel + DBeaver veya HeidiSQL kullanın (aşağıda anlatıyoruz). phpMyAdmin gerçekten gerekiyorsa — kurulumu yapın, sonra güvenlik sertleştirme bölümündeki her adımı uygulayın.

Ubuntu / Debian'da Kurulum (apt)

# Sistem güncellemesi
apt update && apt upgrade -y

# Apache, PHP 8.2, MariaDB ve phpMyAdmin
apt install apache2 php8.2 php8.2-mysql mariadb-server phpmyadmin -y

# Kurulum sırasında:
# "Web server to reconfigure automatically?" → apache2 seçin
# "Configure database for phpmyadmin with dbconfig-common?" → Yes
# phpMyAdmin için uygulama şifresi belirleyin

# Apache'ye phpMyAdmin konfigürasyonunu dahil et
echo 'Include /etc/phpmyadmin/apache.conf' >> /etc/apache2/apache2.conf
systemctl reload apache2

MariaDB güvenli kurulum:

mysql_secure_installation
# root şifresi belirle
# anonymous users kaldır → Y
# root remote login kapat → Y
# test veritabanı kaldır → Y
# privilege tablosu yenile → Y

AlmaLinux / RHEL 9'da Kurulum (dnf + EPEL)

# EPEL deposunu ekle
dnf install epel-release -y

# Apache, PHP 8.2, MariaDB
dnf install httpd php php-mysqlnd mariadb-server -y

# phpMyAdmin EPEL'den
dnf install phpmyadmin -y

# Servisleri başlat ve etkinleştir
systemctl enable --now mariadb httpd

# MariaDB güvenlik adımı
mysql_secure_installation

# /etc/httpd/conf.d/phpMyAdmin.conf içinde varsayılan "Require local" satırını
# güvenlik bölümünde IP whitelist ile değiştireceksiniz

Nginx + PHP-FPM ile Kurulum

Nginx kullanıyorsanız Apache yerine aşağıdaki sanal host bloğu:

server {
    listen 80;
    server_name db.siteadiniz.com;

    root /usr/share/phpmyadmin;
    index index.php;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Hassas dizinleri engelle
    location ~ ^/(libraries|setup|templates|vendor)/ {
        deny all;
        return 404;
    }
}
nginx -t && systemctl reload nginx

config.inc.php: Önemli Ayarlar

phpMyAdmin'in davranışını /etc/phpmyadmin/config.inc.php (Debian/Ubuntu) veya /etc/phpMyAdmin/config.inc.php (AlmaLinux) dosyasından yönetirsiniz.

<?php
// Oturum şifreleme anahtarı — 32+ karakter rastgele dize
// MUTLAKA değiştirin; varsayılan boş bırakmayın
$cfg['blowfish_secret'] = 'Buraya32KarakterdenUzunRastgeleBirDize!2026';

$i = 0;
$i++;

// Bağlantı ayarları
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '';

// Kimlik doğrulama türü
// 'cookie' = phpMyAdmin kendi giriş formu (önerilen)
// 'config' = kullanıcı/şifre config'de gömülü (TEHLİKELİ — kullanmayın)
$cfg['Servers'][$i]['auth_type'] = 'cookie';

// Root girişini devre dışı bırak
$cfg['Servers'][$i]['AllowRoot'] = false;

// Şifresiz girişi engelle (güvenlik)
$cfg['Servers'][$i]['AllowNoPassword'] = false;

// Oturum süresi (saniye) — 1440 = 24 dakika
$cfg['LoginCookieValidity'] = 1440;

// Büyük import için yükleme limiti
$cfg['UploadDir'] = '/var/lib/phpmyadmin/upload';
$cfg['SaveDir']   = '/var/lib/phpmyadmin/save';
?>

blowfish_secret neden kritik? phpMyAdmin bu değeri oturum çerezini şifrelemek için kullanır. Boş bırakırsanız phpMyAdmin uyarı verir ve güvenlik açığı oluşur. Rastgele değer üretmek için:

# 32 karakter rastgele string üret
openssl rand -base64 32

Güvenlik Sertleştirme

phpMyAdmin kurduysanız bu adımları atlamamalısınız.

1. URL Yolunu Değiştirin (/phpmyadmin default'u kaldırın)

# Ubuntu/Debian — varsayılan symlink'i kaldır, yeni isimde oluştur
rm /etc/apache2/conf-enabled/phpmyadmin.conf

# Apache konfigürasyon dosyasında Alias değiştir
# /etc/phpmyadmin/apache.conf içinde:
# Alias /phpmyadmin → Alias /db-yonetim-2026
sed -i 's|Alias /phpmyadmin|Alias /db-yonetim-2026|' /etc/phpmyadmin/apache.conf
a2enconf phpmyadmin
systemctl reload apache2

Artık bot taramaları /phpmyadmin adresine gelip 404 görür; siz /db-yonetim-2026 adresini bilirsiniz.

2. IP Whitelist — .htaccess ile Erişim Kısıtlama

# /usr/share/phpmyadmin/.htaccess
# (AllowOverride All gerektirir — /etc/phpmyadmin/apache.conf'ta kontrol edin)

Order Deny,Allow
Deny from all
Allow from 192.168.1.100
Allow from 88.247.50.0/24

# Veya: .htpasswd ile ek parola katmanı
AuthType Basic
AuthName "Yetkili Erisim"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
# .htpasswd dosyası oluştur (siteadmin kullanıcısı için)
htpasswd -c /etc/phpmyadmin/.htpasswd siteadmin
# Yeni şifre ister; 16+ karakter kullanın

3. Güvenlik Kontrol Listesi

Kontrol Durum Not
URL yolu değiştirildi (/phpmyadmin değil) Zorunlu Bot taramasını engeller
IP whitelist aktif (.htaccess) Zorunlu Sadece kendi IP'niz erişsin
.htpasswd ek parola Önerilir İkinci kimlik doğrulama katmanı
AllowNoPassword = false Zorunlu config.inc.php'de
AllowRoot = false Önerilir Root ile web girişini kapat
blowfish_secret dolu (32+ karakter) Zorunlu config.inc.php'de
phpMyAdmin 5.x güncel sürüm Zorunlu apt upgrade phpmyadmin ile
HTTPS etkin Zorunlu Let's Encrypt ücretsiz SSL

Temel Kullanım: Veritabanı Yönetimi

Veritabanı ve Tablo İşlemleri

  1. Veritabanı oluştur: Sol panel → New → İsim girin → Collation: utf8mb4_unicode_ci seçin → Create
  2. Tablo oluştur: Veritabanına tıklayın → "Create table" → Sütun ismi, tipi, uzunluğu, NULL/NOT NULL girin → Primary Key seçin → Save
  3. Veri görüntüle: Tablo adına tıklayın → Browse sekmesi → Sayfalı liste gelir
  4. Kayıt düzenle: Satır yanındaki Edit ikonuna tıklayın, değiştirin, Go
  5. SQL sorgusu çalıştır: Üst menü SQL sekmesi → Sorguyu yazın → Go

Örnek senaryo — WordPress site URL düzeltme:

-- wp_options tablosunda siteurl ve home adreslerini düzelt
UPDATE wp_options
SET option_value = 'https://siteadiniz.com'
WHERE option_name IN ('siteurl', 'home');

Bu tek sorgu, taşıma sonrası oluşan "database connection error" ve beyaz sayfa sorunlarının büyük bölümünü çözer.

Import ve Export

Veritabanı Import Etme

Sol panelden hedef veritabanını seçin → Import sekmesi
→ "Choose file" ile .sql dosyası seçin (max 128 MB — varsayılan limit)
→ Character set: utf-8
→ Go

50 MB üzeri dosyalar için CLI yöntemi (cPanel VDS veya SSH):

# Doğrudan mysql komutuyla — boyut sınırı yok
mysql -u kullanici_adi -p veritabani_adi < /yol/yedek-dosyasi.sql

# Sıkıştırılmış .sql.gz ise
gunzip < /yol/yedek-dosyasi.sql.gz | mysql -u kullanici_adi -p veritabani_adi

Veritabanı Export Etme

Veritabanını seçin → Export sekmesi
→ Quick: tüm veritabanını hızlı SQL formatında indir
→ Custom: belirli tablolar, yapı+veri ayrı, sıkıştırma (gzip), farklı format (CSV, Excel) seçin
→ Go

CSV export — sadece bir tablo:

Tabloyu seçin → Export → Format: CSV → Sütun adları dahil: Yes → Go

CLI ile düzenli yedek (cron):

# Her gece 03:00'de yedek al — crontab -e ile ekleyin
0 3 * * * mysqldump --single-transaction -u kullanici -p'PAROLA' veritabani_adi   | gzip > /backup/db-$(date +%F).sql.gz

# 30 günden eski yedekleri temizle
find /backup -name "db-*.sql.gz" -mtime +30 -delete

Kullanıcı Yetki Yönetimi (GRANT)

phpMyAdmin'de kullanıcı oluşturmak için: Üst menü → User accounts → Add user account

Forma doldurun: kullanıcı adı, Host (localhost = yalnızca yerel bağlantı, % = her yerden), şifre. Ardından veritabanı özel yetkileri seçin.

SQL ile kullanıcı ve yetki:

-- Yeni kullanıcı oluştur (sadece localhost erişimi)
CREATE USER 'site_kullanici'@'localhost' IDENTIFIED BY 'GucluParola2026!';

-- Spesifik veritabanına okuma+yazma yetki ver
GRANT SELECT, INSERT, UPDATE, DELETE ON site_veritabani.* TO 'site_kullanici'@'localhost';

-- Salt okunur rapor kullanıcısı
CREATE USER 'rapor_ro'@'localhost' IDENTIFIED BY 'BaskaBirParola!';
GRANT SELECT ON site_veritabani.* TO 'rapor_ro'@'localhost';

-- Değişiklikleri hemen uygula
FLUSH PRIVILEGES;

-- Kullanıcının yetkilerini görüntüle
SHOW GRANTS FOR 'site_kullanici'@'localhost';

Yetki kaldırma:

-- Belirli bir yetkiyi geri al
REVOKE DELETE ON site_veritabani.* FROM 'site_kullanici'@'localhost';

-- Kullanıcıyı tamamen sil
DROP USER 'eski_kullanici'@'localhost';
FLUSH PRIVILEGES;
Yetki Açıklama Web uygulaması için
SELECT Okuma Evet
INSERT Yeni kayıt Evet
UPDATE Güncelleme Evet
DELETE Silme Evet
CREATE Tablo oluştur Yalnızca ilk kurulumda
DROP Tablo sil Production'da verme
ALTER Yapı değişikliği Migration sırasında
GRANT OPTION Yetki devri Yalnızca DBA

phpMyAdmin'e Alternatif: SSH Tunnel + Masaüstü GUI

VDS kullanıyorsanız phpMyAdmin yerine SSH tunnel + masaüstü araçlarını kesinlikle tercih edin. Nedeni: phpMyAdmin web tabanlı olduğu için XSS, CSRF ve brute-force saldırılarına maruz kalır; SSH tunnel ise veritabanını tamamen kapalı tutar — sadece SSH üzerinden tünel açar.

SSH Tunnel Açma:

# Yerel makinenizde — 33306 portunu VDS'deki 3306'ya tüneller
ssh -L 33306:127.0.0.1:3306 kullanici@vds-ip-adresi -N

Bu komut çalıştığında yerel makinenizde 127.0.0.1:33306 adresine bağlanan her bağlantı VDS'deki MariaDB/MySQL'e ulaşır.

DBeaver / HeidiSQL / MySQL Workbench bağlantısı: Host: 127.0.0.1, Port: 33306, kullanıcı adı ve şifrenizi girin.

Karşılaştırma phpMyAdmin DBeaver / HeidiSQL Adminer
Kurulum Apache + PHP gerekli Masaüstü uygulama Tek .php dosyası
Saldırı yüzeyi Web tabanlı — dikkat SSH tunnel — minimal Web tabanlı — phpMyAdmin kadar
Çoklu DB desteği Yalnızca MySQL/MariaDB MySQL, PostgreSQL, SQLite… MySQL, PostgreSQL, SQLite…
VDS için öneri Dikkatli kullanın ✅ Önerilen Tek .php — hızlı, sonra sil
cPanel için ✅ Dahili, sorun yok

Sık Sorulan Sorular

cPanel'de phpMyAdmin ayrıca kurulur mu?

Hayır. Buyukweb cPanel hosting paketlerinde phpMyAdmin zaten kurulu ve yapılandırılmış geliyor. cPanel > Veritabanları > phpMyAdmin menüsüne gidin, otomatik giriş yapılır.

phpMyAdmin'i VDS'de varsayılan /phpmyadmin URL'siyle çalıştırsam ne olur?

Botlar bu yolu bilir ve otomatik tarar. Brute-force denemeleri, CVE tabanlı exploit denemeleri saatler içinde başlar. Zorunlu adımlar: URL'yi değiştirin, .htaccess IP whitelist ekleyin, .htpasswd ile ikinci bir kimlik doğrulama katmanı ekleyin.

100 MB'lık SQL yedeği phpMyAdmin ile nasıl yüklerim?

phpMyAdmin'in varsayılan dosya yükleme limiti php.ini ayarlarına bağlıdır (genellikle 128 MB). Bu sınırı aşan dosyalar için CLI yöntemi kullanın: mysql -u kullanici -p veritabani < yedek.sql. Büyük dosyalarda bu hem daha hızlı hem daha güvenilirdir.

phpMyAdmin'de tablo tüm satırları göstermiyor, neden?

Varsayılan sayfalama 25 satırdır. Tablo görünümünde sağ üstte "Show all" veya "Rows per page" değerini artırabilirsiniz. Büyük tablolarda (100.000+ satır) "Show all" yüklemeyi kasabilir; SQL sekmesinde SELECT ... LIMIT 100 OFFSET 0 ile sayfalı çekiş tercih edin.

WordPress admin şifresini phpMyAdmin'den sıfırlayabilir miyim?

Evet. wp_users tablosunu açın, ilgili kullanıcı satırını düzenleyin, user_pass sütununa tıklayın, Function seçeneğinden MD5 seçin, yeni şifreyi yazın, Kaydet. Veya SQL sekmesinde:

UPDATE wp_users
SET user_pass = MD5('YeniSifre2026!')
WHERE user_login = 'admin';

Hangi kullanıcıya hangi veritabanı için GRANT vermeliyim?

En az yetki prensibi: web uygulaması için SELECT, INSERT, UPDATE, DELETE yeterli. DROP, ALTER, GRANT OPTION üretim ortamında vermeyin. Her uygulama kendi kullanıcısına sahip olsun; root kullanıcısını uygulama bağlantısında kullanmayın.

phpMyAdmin versiyonumu nasıl güncel tutarım?

Debian/Ubuntu'da apt update && apt upgrade phpmyadmin, AlmaLinux'ta dnf upgrade phpmyadmin. Arayüzün sol alt köşesinde çalışan sürüm yazar; düzenli güncellemeler güvenlik yamalarını getirir.

Sonuç

phpMyAdmin, cPanel hosting için en pratik veritabanı yönetim yolu — kurulum gerektirmez, tek tıkla erişilir. Buyukweb cPanel paketlerinde MariaDB 10.6 LTS üzerinde çalışır; büyük dosya yüklemeleri için CLI, düzenli yedek için mysqldump + cron kombinasyonu kullanın. VDS kullanıyorsanız phpMyAdmin kurmak yerine SSH tunnel + DBeaver veya HeidiSQL tercih edin: web tabanlı bir arayüz açmadan veritabanınıza güvenli erişirsiniz. Mutlaka phpMyAdmin kuracaksanız — URL değiştirme, IP whitelist ve .htpasswd adımlarının hepsini uygulayın.

Teknik destek için: 0850 302 60 70.


İlgili Büyükweb Hizmetleri

Veritabanı yönetimi için altyapı seçeneklerimiz:

Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.

Veritabanı Yönetimi İlgili Hizmetlerimiz

Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin

Etiketler:

#php#phpmyadmin#kurulum rehberi#veritabanı#database#veri yönetimi

Bu yazıyı paylaş