10 Saniyede: Centos 7 Mysql server kurulumu + Database oluşturma + bağlantı ve erişim ayarları

Konumuzda centos 7 64 bit bir işletim sistemi üzerine mysql kurarak veritabanı erişimi izinlerini vereceğiz ve birden fazla sunucumuzda bulunan sitelerin bu mysql server üzerinden haberleşmelerini sağlayacağız. Hazırladığım batch scriptini kullanarak 10 saniyede mysql kurulumunu gerçekleştirebileceksiniz ve dahasıda var, siz konuyu takip edin.

Mysql uygulamasının ana site ile aynı sunucuda olması cpu ve ram kullanımını artırmakta ve buda zaman zaman kesintilere neden olmaktadır, özellikle anlık online ziyaretçi artışlarınızda sitenizde çeşitli sorunlar yaşarsınız. Bu tarz sorunları ortadan kaldırmak için mysql yi ayrı bir sunucuya taşıyarak ana sunucu üzerindeki yükü minumum’a indirebiliriz.

Bu anlatımımızda centos’un son versiyonu olan centos 7 üzerine mysql server (mariaDB) kurulumuna yer vereceğim.

*** Hazır betik ile 10 saniyede kurulum ve yönetim ***

Yetenekler:

  • centos 7 mariaDB mysql server kurulumu
  • Database oluşturma ve dış IP lere (server) izin verme
  • Sadece IP ye izin verme (farklı sunuculardan mysql erişim izni)

Ek olarak: Kurulumda mysql tuner uygulamasınıda mariaDB kurulumu sırasında sisteme kuruyoruz. Böylece 24-48 saat sonra ilgili kodu çalıştırarak mysql yani my.cnf optimizasyon önerilerini alabilirsiniz. (ilgili kod: konu altında, kurulumdan sonra)


Uygulama ve çalışma yöntemleri:

Ssh bağlantısı yaparak komut ekranına gelin, Putty ile SSH baglantısı

İlk önce betiğimizi indirelim


——- mariaDB mysql kurulumunu aşağıdaki komut ile yapalım:

Normalde yukarıdaki kodu uyguladığınızda ekranda sizi yönlendirecek komutlar yer alacaktır. Bu ekranı takip ederek sorulara cevap verin ve kurulumu bitirin.

Kurulum bitti, bu kadar basit 🙂


——- Database oluşturma ve Bağlantı yetkileri verme

Aşağıdaki kodu kullanarak yeni database oluşturabilirsiniz.

Yukarıdaki kod kısmında göreceğiniz parametreleri kendinize göre ayarlayın:

  1. DB_ismi: Database ismi
  2. DB_kullanıcı: Kullanıcı ismi
  3. DB_şifre: Kullanıcı şifresi
  4. IP_izin_verilecek_IP: mysql sunucusuna bağlanmasına izin vereceğiniz IP yi girmeniz gerekli. Böylece databaseye erişim yetkisi sadece bu IP adresinden yapılabilecek, diğer Sunuculardan erişim reddedilecek.

——- Database ye erişim izni vermek

Daha önce oluşturduğunuz bir DATABASE ye farklı bir IP sunucusundan yapılacak isteklere izin vermek için kullanabileceğiniz kod satırı, yukarıdaki ile benzer:

  1. DB_ismi: Database ismi
  2. DB_kullanıcı: Kullanıcı ismi
  3. DB_şifre: Kullanıcı şifresi
  4. IP_izin_verilecek_IP: mysql sunucusuna bağlanmasına izin vereceğiniz IP yi girmeniz gerekli. Böylece databaseye erişim yetkisi sadece bu IP adresinden yapılabilecek, diğer Sunuculardan erişim reddedilecek.

——- Mysql tuner ile my.cnf optimizasyon önerileri almak

Kuruluma eklediğim mysql tuner uygulaması ile 24-48 saat boyunca çalışan bir mysql serverda en iyi my.cnf ayarları için öneriler alabilirsiniz. Aşağıdaki kodu çalıştırmadan önce mysql server’inizin 24-48 saat boyunca restart edilmeden çalışması gerekmektedir, aksi taktirde yanlış optimizasyon önerileri alabilirsiniz. Bu uygulamanın kurulumuna ayrıca buradan ulaşabilirsiniz.


Videolu kurulum ve test videomuz

İlk videolu anlatımım arkadaşlar, hatalarım olabilir, şimdiden kusuruma bakmayın, umarım faydalı olur.


Dipnot: Mysql sunucusuna bağlanmaya çalıştığınız webserver sunucusunda güvenlik yazılımınız varsa mysql İP sunucusuna çıkış bağlantı (out) izini vermeniz gerekli. Aksi durumda mysql sunucusuna bağlantınız yapılamayacaktır.

6 Yorumlar

    • Oncelikle bu guvenli degil, bunun yerine izin verilecek IP leri asagidaki kombinasyonu kullanarak tek tek girmenizi tavsiye ederim:

      sh kuaza_mariadb.sh ipizinver DB_ismi DB_kullanici DB_sifre IP_izin_verilecek_IP

      ************

      Ancak illa butun IP lere mysql erisim izni vermek isterseniz asagidaki adimlari uygulayin, denemedim, calismazsa yazin tekrar:

      ssh terminalden asagidaki parametreleri sirayla girin:

      firewall-cmd --zone=public --add-port=3306/tcp --permanent
      systemctl restart firewalld

      sonrasinda butun IP lerden hagi veritabanina erisim izni verilecekse asagidaki adimlari uygulayarak veritabanina yetkileri verelim:

      mysql ye girelim:

      mysql -u root -p

      Asagidaki kodu kendinize gore duzenleyin ve calistirin:
      GRANT ALL PRIVILEGES ON VERITABANI_ISMI.* TO 'VERITABANI_KULLANICI_ISMI'@'%' WITH GRANT OPTION;
      flush privileges;

      Bu adimlardan sonra mysql veritabanina butun IP adreslerinden erisim yetkisi verilmis olacak.

      Yinede denemeden ve test etmeden yazdim, problem cikarsa hata kodu ile bu konuya cevap olarak yazin. Calisirsada yazarsaniz en azindan ise yaradigini belirtmis oluruz.

Bir Cevap Yazın