
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.
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)
.sqldosyası 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
/phpmyadminvarsayı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
- Veritabanı oluştur: Sol panel → New → İsim girin → Collation:
utf8mb4_unicode_ciseçin → Create - 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
- Veri görüntüle: Tablo adına tıklayın → Browse sekmesi → Sayfalı liste gelir
- Kayıt düzenle: Satır yanındaki Edit ikonuna tıklayın, değiştirin, Go
- 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:
- cPanel Web Hosting — phpMyAdmin ve MariaDB 10.6 dahil
- VDS Sunucu — root yetkili, MariaDB veya MySQL serbestçe kurulabilir
- E5 v4 VDS — NVMe SSD, yüksek IOPS, veritabanı odaklı iş yükleri
- WordPress Hosting — LiteSpeed + MariaDB optimize
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:

