Ubuntu 18.04 Uzak MySQL Kurulumu ile WordPress Performansını Artırma
Bu rehberde ne öğreneceksiniz?
Bu rehberde, WordPress gibi MySQL kullanan uygulamalarda performansı artırmak için veritabanını web sunucusundan ayırmayı öğreneceksiniz.
MySQL’i sadece belirli bir IP’den erişilebilir hale getirip bağlantıları SSL/TLS ile güvence altına alacağız.
🧠 Teknik Özet
Ana konu: Ubuntu 18.04 üzerinde MySQL uzak veritabanı yapılandırması
Amaç: Web sunucusu ve veritabanı yükünü ayırarak performansı ve ölçeklenebilirliği artırmak
Yaklaşım:
- MySQL’i uzak bağlantılara açma
- SSL/TLS ile güvenli iletişim sağlama
- IP bazlı kullanıcı yetkilendirme
- WordPress’i uzak veritabanına bağlama
🛠 Gereksinimler
- 2 adet Ubuntu 18.04 Bulut Sunucu
tr1-db01: Veritabanı Sunucusu (MySQL)tr1-web01: Web Sunucusu (Nginx + PHP)
- Her iki sunucuda:
- Sudo yetkili root olmayan kullanıcı
- UFW güvenlik duvarı aktif
- Web sunucuda Nginx ve PHP kurulu
- Veritabanı sunucuda MySQL kurulu
- (Önerilir) Web sunucuda alan adı ve Let’s Encrypt SSL
1️⃣ MySQL’i Uzak Bağlantılara Açma (Veritabanı Sunucusu)
MySQL varsayılan olarak sadece yerel bağlantıları kabul eder.
Bu ayarı değiştirmemiz gerekiyor.
1.1 MySQL yapılandırma dosyasını açın
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- Bu dosya MySQL sunucu ayarlarını içerir.
- Dinlenecek IP adresini ayarlayın
[mysqld]
bind-address = db_sunucu_ip
- Bu ayar MySQL’in dış ağdan bağlantı kabul etmesini sağlar.
- SSL/TLS bağlantısını zorunlu kılın
require_secure_transport = on
- Bu ayar şifrelenmemiş bağlantıları engeller.
- SSL sertifikalarını oluşturun
sudo mysql_ssl_rsa_setup --uid=mysql
- Bu komut MySQL için gerekli SSL anahtarlarını üretir.
- MySQL servisini yeniden başlatın
sudo systemctl restart mysql
- Bu işlem yeni ayarları aktif eder.
- MySQL’in dinlediğini kontrol edin
sudo netstat -plunt | grep mysqld
- Çıktıda db_sunucu_ip:3306 görünmelidir.
- Güvenlik duvarında MySQL’e izin verin
sudo ufw allow mysql
-Bu adım web sunucusundan gelen bağlantılara izin verir.
2️⃣ WordPress Veritabanı ve Kullanıcıları Oluşturma
2.1 MySQL’e giriş yapın
sudo mysql
- Bu komut MySQL yönetim ortamını açar.
- WordPress veritabanını oluşturun
CREATE DATABASE wp_site;
- Bu veritabanı WordPress tarafından kullanılacaktır.
- Yerel kullanıcı oluşturun
CREATE USER 'wp_local_user'@'localhost' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_local_user'@'localhost';
- Bu kullanıcı sadece veritabanı sunucusundan erişebilir.
- Uzak kullanıcı oluşturun
CREATE USER 'wp_remote_user'@'web_sunucu_ip' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON wp_site.* TO 'wp_remote_user'@'web_sunucu_ip';
- Bu kullanıcı sadece web sunucusundan bağlanabilir.
- Yetkileri aktif edin ve çıkın
FLUSH PRIVILEGES;
exit
- Bu işlem yetkileri hemen uygular.
3️⃣ Uzak Bağlantıyı Test Etme (Web Sunucusu)
- Web sunucusuna bağlanın
ssh kullanici@web_sunucu_ip
- Bu komut web sunucusuna SSH ile bağlanır.
- MySQL istemcisini kurun
sudo apt update
sudo apt install mysql-client
- Bu araç uzak MySQL bağlantısı için gereklidir.
- Uzak veritabanına bağlanın
mysql -u wp_remote_user -h db_sunucu_ip -p
- Bağlantı başarılıysa MySQL istemi açılır.
- SSL bağlantısını doğrulayın
status
- Çıktıda SSL: Cipher in use satırı görünmelidir.
4️⃣ WordPress Kurulumu ve Yapılandırması
4.1 WordPress’i indirin ve çıkarın
cd ~
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
- Bu işlem WordPress dosyalarını indirir.
- Yapılandırma dosyasını hazırlayın
cp ~/wordpress/wp-config-sample.php ~/wordpress/wp-config.php
- Bu dosya WordPress ayarlarını içerir.
- Güvenlik anahtarlarını oluşturun
curl -s https://api.wordpress.org/secret-key/1.1/salt/
- Bu anahtarlar WordPress güvenliğini artırır.
- Veritabanı bilgilerini girin
define('DB_NAME', 'wp_site');
define('DB_USER', 'wp_remote_user');
define('DB_PASSWORD', 'guclu_sifre');
define('DB_HOST', 'db_sunucu_ip');
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
- Bu ayarlar WordPress’i uzak MySQL’e bağlar.
- Dosyaları web dizinine taşıyın
sudo cp -a ~/wordpress/* /var/www/html
sudo chown -R www-data:www-data /var/www/html
- Bu işlem WordPress’i yayına hazırlar.
5️⃣ Web Arayüzü Üzerinden Kurulumu Tamamlama
- Tarayıcıdan alan adınıza gidin:
https://ornek-domain.com
- Dil seçimini yapın ve kurulumu tamamlayın. Kurulum sonrası WordPress yönetim paneline giriş yapabilirsiniz.
❓ Sıkça Sorulan Sorular (SSS)
1. Neden veritabanını ayrı sunucuya taşımalıyım? Performans ve ölçeklenebilirlik sağlar.
2. SSL/TLS neden zorunlu? Veri trafiğini şifreleyerek güvenliği artırır.
3. Özel IP mi genel IP mi kullanmalıyım? Aynı bölgede ise özel IP önerilir.
4. Neden % yerine IP kısıtlaması kullandık? Yetkisiz erişim riskini azaltır.
5. Ubuntu 20.04 veya 22.04’te çalışır mı? Evet, adımlar büyük ölçüde aynıdır.
🎯 Sonuç
Bu rehberle MySQL’i güvenli şekilde uzak bağlantılara açtınız. Web ve veritabanı yükünü ayırarak daha performanslı bir mimari kurdunuz.
👉 Rabisu Bulut platformunda bu yapıyı dakikalar içinde kurabilir, uygulamanızın performans farkını hemen gözlemleyebilirsiniz.