MySQL, verileri veri türlerinin birbiriyle ilişkili olabileceği tek veya birden çok veri tablosunda düzenleyen açık kaynaklı, güçlü ve yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Structured Query Language (SQL), RDBMS’lerle çalışır ve birileri büyük miktarda veri depolamak veya yönetmek istediğinde, ilişkisel veritabanı ve SQL hizmetini alır.Bu makale, Ubuntu 18.04 sunucunuzda MySQL’in nasıl yapılandırılacağını gösterir. Ayrıca, kimlik doğrulamanın nasıl etkinleştirileceğini ve ardından hizmet yönetimini gösterir. Sonunda, başarılı yapılandırmayı doğrulamak için hizmeti nasıl test edeceğinizi de öğreneceksiniz.

Adım 1: MySQL İstemci Kurulumu

Sunucuya uzaktan bağlanmak için mysql istemcisini kurun :

sudo apt install mysql-client -y

Yüklemenin başarılı olup olmadığını doğrulamak için istemci sürümünü kontrol edin:

mysql -V

Çıktı:

mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 
((Ubuntu))

Artık MySQL sunucusuyla uzaktan bağlantı kurmak için aşağıdaki komutu kullanabilirsiniz:

mysql -u <username> -p <password>-h HOSTNAME_OR_IP

Adım 2: MySQL Sunucu Kurulumu

MySQL’i kurmadan önce Ubuntu sunucusunun doğru şekilde kurulduğundan ve yapılandırıldığından emin olun. Ubuntu 18.04 sunucusu, varsayılan olarak, depolarda en son MySQL sürümü 5.7’yi içerir. Depodaki sistem paketlerini aşağıdaki gibi güncellemek için apt komutunu kullanın:

sudo apt update

Şimdi MySQL sunucu paketini kurmak için aşağıdaki komutu kullanın:

sudo apt install mysql-server -y

3. Adım: MySQL Yapılandırması

Bu kalıcı siber güvenlik tehditleri çağında, başarılı sunucu kurulumundan sonra varsayılan seçenekleri değiştirmek bir standarttır. Bu bölüm, uzak kök oturum açma, varsayılan kullanıcı hesapları vb. gibi güvenli olmayan varsayılan seçenekleri ortadan kaldırmak için MySQL sunucusu yapılandırmasında size rehberlik eder. MySQL, basit bir güvenlik komut dosyası çalıştırarak tüm değişiklikleri otomatik olarak yaparak bu görevi kolaylaştırır.

sudo mysql_secure_installation

Komut dosyası, MySQL varsayılan güvenliğini değiştirmek için Evet veya Hayır yanıtlarını isteyen birden çok seçenek ister. Örneğin, ilk istem, şifreleri doğrulamak için bir eklenti kurmak istiyorsanız, Evet’i yanıtlayın ve devam edin.

Sonraki istem, MySQL kök kullanıcı hesabı parolasını ayarlamanızı ister. Parolayı Doğrula eklentisini etkinleştirmenin, üç parola güvenlik ilkesi ve uzunluğu düzeyine göre parola gücünün ayarlanmasına olanak tanıdığını fark edebilirsiniz.

Parola gücünü ayarlamak için seçmek istediğiniz numarayı girin. Sistem daha sonra yeni parolayı belirlemenizi ve aşağıdaki gibi onay için yeniden yazmanızı isteyecektir:

Parolayı ayarladıktan sonra, gücü gösterdiğini ve daha fazla devam etmek isteyip istemediğinizi sorduğunu fark edebilirsiniz.

Şimdi sonraki soruları soracak:

  1. Anonim test kullanıcısını kaldırmak için
  2. Kök kullanıcıdan uzaktan oturum açmayı devre dışı bırak
  3. Test veritabanlarını kaldırın
  4. Tüm değişiklikleri kaydetmek için ayrıcalıklar tablosunu yeniden yükleyin

Güvenlik kurallarını belirlemek üzere varsayılan ayarlarla devam etmek için Y yazın.

MySQL’in eski sürümleri (5.7.6’dan önce) veritabanı dizinini manuel olarak başlatmanızı gerektirir. Bundan sonraki sürümler için aşağıdaki komutu çalıştırın:

mysqld –initialize

Adım 4: MySQL Kullanıcı Kimlik Doğrulama Ayarlamaları

Bir MySQL kullanıcı hesabı için parola oluşturulmasından bağımsız olarak, varsayılan kimlik doğrulama ayarı, bağlantı kurulması sırasında parola kullanımını devre dışı bırakır. Bunun yerine, auth_socket eklentisi yardımıyla kullanıcının kimliğini otomatik olarak doğrular . Eklenti, kullanılabilirlik için harika bir özelliktir, ancak veritabanınıza uzak bir istemciden erişmek istiyorsanız pratik değildir.

Parola olmadan veritabanı erişimi, harici bir program tarafından erişildiğinde çalışma sürecini karmaşıklaştırdığından, bu bölüm, bağlantı kuruluşunda kullanıcının kimliğini doğrulamanın iki yolunu özetler:

1. Şifreli Kök Kullanıcı Kimlik Doğrulaması

Parola yoluyla kullanıcı kimlik doğrulamasını sağlamak için, eklentiyi ” auth_socket ” yerine ” mysql_native_password ” olarak değiştirebilirsiniz . Bunun için sudo mysql komutunu kullanarak MySQL komut ekranını açın ve kullanıcı kimlik doğrulaması için kullanılan eklentiyi aşağıdaki gibi doğrulayın:

SELECT user, authentication_string, plugin, 
host FROM mysql.user;

Yukarıdaki ekran görüntüsü, kök istemcinin “auth_socket” eklentisini kullanarak kimliğini doğruladığını gösterir. Kök istemci kimlik doğrulamasını bir parola ile başlatmak için “mysql_native_password” eklentisini ayarlamak için ALTER USER ifadesini kullanın.

ALTER USER 'root'@'localhost' IDENTIFIED WITH 
mysql_native_password BY 'password';

Yukarıdaki değişiklikleri aşağıdaki gibi kaydedin:

FLUSH PRIVILEGES;

“FLUSH PRIVILEGES” MySQL ifadesi, ALTER, INSERT, UPDATE ve DELETE yan tümceleri tarafından yapılan veritabanı tablolarındaki değişiklikleri kaydeder.

Şimdi her kullanıcı tarafından kullanılan kimlik doğrulama stratejilerini doğrulamak ve “auth_socket” eklentisinin kök istemci tarafından kullanılmadığından emin olmak için komutu yeniden çalıştırın:

SELECT user,authentication_string,plugin,host 
FROM mysql.user;

Artık kök kullanıcı, aşağıdaki komutla kimlik doğrulaması yaparak sunucuya bağlanabilir:

sudo mysql -u root -p

2. Özel Bir Kullanıcı Oluşturun

mysql_native_password kullanmadan kimlik doğrulamayı etkinleştirmenin başka bir yolu, aşağıdaki gibi özel bir kullanıcı oluşturmaktır:

sudo mysql

Yeni bir hesap oluşturun ve yeni kullanıcıya yönetim düzeyi denetimi atamak için tüm ayrıcalıkları verin. Ardından MySQL isteminden çıkın. Bunu başarmak için aşağıdaki SQL sorgularını tek tek çalıştırın:

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 
'password';GRANT ALL PRIVILEGES ON *.* TO
 'ubuntu'@'localhost' WITH GRANT OPTION;
exit

MySQL Hizmetini systemctl ile Yönetin ve Test Edin

Aşağıdaki gibi systemctl enable komutunu kullanarak hizmeti Ubuntu sunucusu başlangıcında çalışacak şekilde ayarlayın :

sudo systemctl enable mysql

Ayrıca, şunu yazarak sunucunun çalışır durumda olduğunu test edebilirsiniz:

sudo systemctl status mysql

Veya

sudo systemctl status mysql.service

Hizmet, MySQL kurulumundan sonra otomatik olarak çalışır, ancak çalışmıyorsa, aşağıdaki komutu kullanarak hizmeti başlatabilirsiniz:

sudo systemctl start mysql

Ubuntu’da MySQL Sunucusuna Başlarken

MySQL, açık kaynaklı, kullanıcı dostu, ölçeklenebilir ve sağlam bir veritabanı yönetim sistemidir. Ayrıca, LAMP/LEMP yığın modelinin veya web uygulama teknolojilerinin ayrılmaz bir parçasıdır. Bu ilişkisel veritabanı yönetim sistemi (RDBMS), son sürümlerinde basit kurulum ve kolay yapılandırma sunar.

Bu makale, MySQL’in nasıl çalıştığını öğrenmeye başlamanıza yardımcı olacak temel bir MySQL kurulumu oluşturmada size rehberlik eder. Ayrıca, varsayılan kurulumdaki boşlukları önlemek için yapılandırmasındaki bazı önemli güvenlik önlemlerini de kapsar. Bazı gelişmiş güvenlik ipuçlarını izleyerek MySQL’in güvenliğini sağlama hakkında daha fazla bilgi edinebilirsiniz.