Ubuntu Üzerinde MySQL ile Uzak Veritabanı Kurulumu ve Performans Optimizasyonu
📘 Bu Rehberde Ne Öğreneceksiniz?
Uygulamanız büyüdükçe tek sunucu mimarisi performans sınırına ulaşır.
Bu rehberde MySQL ve web sunucusunu ayırarak yük dağıtımı, güvenlik ve ölçeklenebilirlik sağlamayı öğreneceksiniz.
🧠 Teknik Özet
Bu rehber Ubuntu üzerinde uzak MySQL veritabanı kurulumunu anlatır.
Amaç, WordPress gibi MySQL kullanan uygulamalarda performansı artırmaktır.
Adımlar: MySQL yapılandırma, SSL, kullanıcı yetkileri, WordPress entegrasyonu.
Ön Hazırlıklar
Kuruluma başlamadan önce aşağıdakiler hazır olmalıdır:
- 2 adet Ubuntu sunucu
- Veritabanı Sunucusu (MySQL)
- Web Sunucusu (Nginx + PHP)
- Her iki sunucuda sudo yetkili kullanıcı
- UFW güvenlik duvarı aktif
- (Önerilir) Aynı veri merkezi ve özel ağ
1. MySQL’i Uzak Bağlantılara Açma
(Veritabanı Sunucusu)
MySQL varsayılan olarak sadece localhost bağlantılarını kabul eder.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- Bu komut MySQL yapılandırma dosyasını açar.
[mysqld]
bind-address = veritabani_sunucu_ipsi
require_secure_transport = on
- Bu ayar MySQL’i dış bağlantılara açar ve SSL’i zorunlu kılar.
sudo mysql_ssl_rsa_setup --uid=mysql
- Bu komut MySQL için SSL sertifikaları üretir.
sudo systemctl restart mysql
- Değişiklikleri uygulamak için MySQL yeniden başlatılır.
sudo ufw allow mysql
Güvenlik duvarında 3306 portu açılır.
2. Veritabanı ve Kullanıcı Oluşturma
sudo mysql
- MySQL konsoluna giriş yapar.
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-WordPress için veritabanı oluşturur.
CREATE USER 'yerel_kullanici'@'localhost' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON wordpress.* TO 'yerel_kullanici'@'localhost';
Yerel yönetim için kullanıcı tanımlar.
CREATE USER 'uzak_kullanici'@'web_sunucusu_ipsi' IDENTIFIED BY 'guclu_sifre';
GRANT ALL PRIVILEGES ON wordpress.* TO 'uzak_kullanici'@'web_sunucusu_ipsi';
FLUSH PRIVILEGES;
EXIT;
Bu kullanıcı sadece web sunucusundan bağlanabilir.
3. Bağlantıyı Test Etme
(Web Sunucusu)
sudo apt update
sudo apt install mysql-client
- MySQL istemcisi kurulur.
mysql -u uzak_kullanici -h veritabani_sunucu_ipsi -p
Uzak veritabanına bağlantı test edilir.
```sql
status;
```sql
status;
```bash
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
```bash
sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip
```bash
sudo systemctl restart php8.1-fpm
```bash
sudo systemctl restart php8.1-fpm
```bash
sudo nano /etc/nginx/sites-available/site_adresiniz
```bash
sudo nano /etc/nginx/sites-available/site_adresiniz
```nginx
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
```nginx
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
```bash
sudo systemctl reload nginx
```bash
sudo systemctl reload nginx
```bash
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
```bash
cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
```bash
sudo cp -a /tmp/wordpress/. /var/www/site_adresiniz
sudo chown -R www-data:www-data /var/www/site_adresiniz
```bash
sudo cp -a /tmp/wordpress/. /var/www/site_adresiniz
sudo chown -R www-data:www-data /var/www/site_adresiniz
```bash
cp wp-config-sample.php wp-config.php
nano wp-config.php
```bash
cp wp-config-sample.php wp-config.php
nano wp-config.php
```php
define('DB_NAME', 'wordpress');
define('DB_USER', 'uzak_kullanici');
define('DB_PASSWORD', 'guclu_sifre');
define('DB_HOST', 'veritabani_sunucu_ipsi');
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
```php
define('DB_NAME', 'wordpress');
define('DB_USER', 'uzak_kullanici');
define('DB_PASSWORD', 'guclu_sifre');
define('DB_HOST', 'veritabani_sunucu_ipsi');
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
```arduino
https://site_adresiniz.com/wp-admin
```arduino
https://site_adresiniz.com/wp-admin
Kurulum sihirbazını tamamlayın.
❓ Sıkça Sorulan Sorular (SSS)
1. Web ve veritabanını ayırmak neden önemli? Kaynak paylaşımı azalır, performans artar.
2. SSL zorunlu mu? Zorunlu değil ama güvenlik için şarttır.
3. Bu yapı ölçeklenebilir mi? Evet, büyük projeler için idealdir.
4. Yanlış IP girersem ne olur? MySQL bağlantıyı reddeder.
🚀 Sonuç
Uzak MySQL mimarisi performans ve güvenlik sağlar. Bu yapı profesyonel WordPress projeleri için idealdir.
👉 GenixNode üzerinde bu altyapıyı dakikalar içinde kurabilirsiniz.

