MySQL'de SSL bağlantıları kurmak ve sunucu değişkenlerini yönetmek, veritabanı güvenliği ve performansı açısından oldukça önemlidir. SSL bağlantıları, veri iletişimini şifreleyerek güvenli hale getirirken, `SHOW VARIABLES` ve `SHOW STATUS` komutları, sunucu yapılandırması ve performansı hakkında değerli bilgiler sağlar. Bu araçları doğru bir şekilde kullanarak, veritabanı yönetimini daha güvenli ve verimli hale getirebilirsiniz.
### MySQL'de SSL Bağlantı Kurulumu ve Değişkenlerin Gösterilmesi
MySQL, güvenli bağlantılar kurmak ve sunucu değişkenlerini yönetmek için çeşitli araçlar sunar. Bu yazıda, **SSL bağlantı kurulumu** ve **SHOW VARIABLES** komutu ile ilgili temel bilgileri ve kullanım örneklerini ele alacağız.
---
### SSL Bağlantı Kurulumu
MySQL'de SSL bağlantıları, veri iletişimini şifreleyerek güvenli hale getirir. Bu özellik, özellikle hassas verilerin iletilmesi gereken durumlarda önemlidir.
#### Debian Tabanlı Sistemlerde SSL Kurulumu
1. **OpenSSL ve Gerekli Kütüphanelerin Kurulumu:**
```bash
apt-get -y install openssl
apt-get -y install libssl-dev
```
2. **SSL Sertifikalarının Oluşturulması:**
```bash
mkdir /home/ubuntu/mysqlcerts
cd /home/ubuntu/mysqlcerts
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
openssl req -newkey rsa:2048 -days 3600 -nodes -keyout client-key.pem -out client-req.pem
openssl rsa -in client-key.pem -out client-key.pem
openssl x509 -req -in client-req.pem -days 3600 -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
```
3. **MySQL Yapılandırma Dosyasına SSL Ayarlarının Eklenmesi:**
```bash
vi /etc/mysql/mysql.conf.d/mysqld.cnf
```
`` bölümüne aşağıdaki satırları ekleyin:
```ini
ssl-ca = /home/ubuntu/mysqlcerts/ca.pem
ssl-cert = /home/ubuntu/mysqlcerts/server-cert.pem
ssl-key = /home/ubuntu/mysqlcerts/server-key.pem
```
4. **MySQL'in Yeniden Başlatılması:**
```bash
service mysql restart
```
5. **SSL Bağlantısının Test Edilmesi:**
```bash
mysql --ssl-ca=ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem -h 127.0.0.1 -u superman -p
```
Bağlantının güvenli olduğunu doğrulamak için:
```sql
SHOW VARIABLES LIKE '%ssl%';
```
#### CentOS/RHEL 7'de SSL Kurulumu
CentOS/RHEL 7'de SSL kurulumu benzer adımları içerir, ancak sertifikaların konumu ve dosya yolları farklı olabilir. Örneğin, sertifikalar `/etc/pki/tls/certs/mysql/` dizinine yerleştirilir ve MySQL yapılandırma dosyası (`/etc/my.cnf`) güncellenir.
---
### SHOW VARIABLES ve SHOW STATUS Komutları
MySQL'de sunucu değişkenlerini ve durum bilgilerini görüntülemek için `SHOW VARIABLES` ve `SHOW STATUS` komutları kullanılır.
#### SHOW VARIABLES Örneği
Sunucu değişkenlerini görüntülemek için:
```sql
SHOW VARIABLES;
```
Belirli bir değişkeni filtrelemek için:
```sql
SHOW VARIABLES LIKE 'max_join_size';
```
Veya joker karakterler kullanarak:
```sql
SHOW VARIABLES LIKE '%size%';
```
#### SHOW STATUS Örneği
Sunucu durum bilgilerini görüntülemek için:
```sql
SHOW STATUS;
```
Belirli bir durum değişkenini filtrelemek için:
```sql
SHOW STATUS LIKE 'Threads_connected';
```
#### GLOBAL ve SESSION Modifikatörleri
- `GLOBAL`: Sunucunun genel değişkenlerini ve durum bilgilerini gösterir.
- `SESSION`: Mevcut oturum için geçerli değişkenleri ve durum bilgilerini gösterir.
Örnek:
```sql
SHOW GLOBAL VARIABLES;
SHOW SESSION STATUS;
```
---
### Sonuç
MySQL'de SSL bağlantıları kurmak ve sunucu değişkenlerini yönetmek, veritabanı güvenliği ve performansı açısından oldukça önemlidir. SSL bağlantıları, veri iletişimini şifreleyerek güvenli hale getirirken, `SHOW VARIABLES` ve `SHOW STATUS` komutları, sunucu yapılandırması ve performansı hakkında değerli bilgiler sağlar. Bu araçları doğru bir şekilde kullanarak, veritabanı yönetimini daha güvenli ve verimli hale getirebilirsiniz.