### 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
“`
`[mysqld]` 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.