:::: MENU ::::
Posts tagged with: mysql

Puppet ile Mysql Kurulumu ve Yönetimi

Install-Puppet-in-CentOS

 

Puppet ile mysql kurulumu ve yönetimi için kullandığım tercih ettiğim modül puppet tarafından supported olan bir modül aşağıdaki linkten erişebilrisiniz.

https://forge.puppet.com/puppetlabs/mysql/2.2.3

 

Mysql kurulumu ve yönetilmesi için oluşturduğum örnek puppet script’i aşağıdaki gibi

 


Mysql’de Sorguların Hızlandırılması

Veritabanı olarak MySql kullanıyorsak, Mysql’de Sorguların Hızlandırılması yani sorguların daha hızlı, verimli ve yüksek performansta çalıştırabilmek için birkaç noktaya dikkat etmeniz gerekmektedir. Bu işlemler tasarım aşamasından başlayıp bir sürü işlemler bütününü kapsamaktadır.Sorgularınızın verimli ve performanslı çalışması için kullanabileceğimiz  Indexleme ve yöntemler aşağıdaki gibidir;

İndexleme nedir?

index, tablolarda bulunan sütunlarının bazılarının özel şekilde düzenlenmiş halidir. Bu alanların özel düzenlenmesi sayesinde sorgular daha hızlı ve performanslı çalışır ve geriye daha çabuk sonuçlar dönmesini sağlamaktadır.

Hangi Sütunlara index konulmalıdır?

– Primary key ve Foreign key sütunları.
– Sorgularda çok sık kullanılan sütunlar.
– Çok sık sıralamaya tabi tutulan sütunlar.
– Gruplama yapılan sütunlar (group by).

İndex gerektirmeyen Sütunlar:

– Nadiren sorgulanan sütunlar.
– Az seçeneği olan sütunlar(cinsiyet,ülke gibi).
– Text,ntext ve image sütunları.

İndex yapılırken dikkat edilecek noktalar:

– Primary key veya Unique constraint oluşturulduğu zaman index otomatik olarak oluşturulur. Standart index oluşturmak yerine Primary key veya Unique constraint tercih edilmelidir.
– View’larda da index olabilir.
– Bir sütun üzerinde index oluşturmadan önceden bir index’e sahip olup olmadığı bakılmalıdır.
– Bir tabloda index oluştumak için tablonun sahibi olmak gerekir.
– Indexleme, sabit diskte extra yer tutar. Verdiği performans artışının yanında karşılaştırılabilecek kadar bile değildir ancak veritabanınınzdaki her tablonun her sütununda index oluşturursanız, sabit diskinizin umduğunuzdan çok daha çabuk yer kaplayabilir.
Index Oluşturma

Bir tablo ile ilişkili olarak index yaratmak için gerekli komut CREATE INDEX komutudur. Komutun yazılış biçimi aşağıdaki gibidir:

 

– Mümkünse Count(*) metodunu tüm tablo için çalıştırmayın, tüm tabloyu kilitleyebilir.
– DISTINCT yerine GROUP BY ifadeleri kullanın. Performansı daha iyidir.
– WHERE, GROUP BY, and ORDER BY ifadelerinde indekslenmiş kolon kullanın.
– Indeksleri basit tutun, bir kolonu birden fazla indekste kullanmayın.
– Bazen MySQL yanlış Index seçer bu sebepten USE INDEX kullanın.
– 5’den az Indeksli alanda OR yerine, UNION ifadelerinde LIMIT kullanın.
– MAX yerine Indeksli alan ve Order BY ifadeleri kullanın.
– ORDER BY RAND() ifadesi kullanmaktan kaçının.
– Bazı durumlarda LIMIT M,N sorguları yavaşlatır. Mümkün oldukça az kullanın.
– Where kullandığınız ifadelerde Alt Sorgular yerine UNION kullanın.
– Bir tablodaki tüm verileri DELETE FROM ile silmek yerine DROP Table ve Create Table kullanın. Tüm verileri silmektense Tabloyu silip yeniden oluşturmak daha hızlıdır.
– Select ifadelerinde SELECT * yerine SELECT KolonAdı şeklinde sadece ihtiyacınız olan alanları seçin.


Mysql Ayar Dosyası

Veri tabanı olarak mysql kullanıyorsak mysql ayar dosyasında yaptığımız değişiklikler büyük önem kazanıyor. Bunun için performans için yaptığımız her değişiklğin neye etki edeceğini bilerek ve hesaplayarak bu değişikliği yapmamız gerekiyor. Mysql ayar dosyası genel olarak, “/etc/my.cnf” dizinindedir.

Mysql Ayar Dosyası(my.cnf)


Mysql Hızlandırmak İçin Öneriler

Mysql hızlandırmak için öneriler aşağıda kısaca anlatmaya çalıştım. umarım faydalı olur.

Mysql Slow Queries

Mysql sunucu üzerindeki problemli (Yüksek I/O ‘ya ve CPU utilizasyonuna neden olan) ve index kullanmayan veya yanlış index kullanan sorgular belirlenebilir.

Ayarların kalıcı olması için/etc/my.cnf dosyasına aşağıdaki satırlar ekleyebiliriz.

Mevcut session’da gerekli ayarları düzenleyebiliriz. Continue Reading


Mysql Replication Crash Safe Slaves Replication Feature introduced in 5.6

Mysql Replication Crash Safe Slaves Replication Feature introduced in 5.6

Mysql Replication Crash Safe Slaves Replication Feature introduced in 5.6

Mysqld log’unda yukarıdaki hatayı alıyorsak aşağıda belirteceğim sıralamayı yaparak fix edebilirsiniz.

Bu iki değer Dynamic Variable olduğu için mysql restart etmeden parametreleri güncelleyebiliriz. Değerlerin kalıcı olması için /etc/my.cnf’ye aşağıdaki iki satırı eklemeliyiz

Ayarları verify edelim.

 


Mysql Server has gone away

Mysql Server has gone away Hatası ve Çözümü

MySQL server has gone away (error 2006) bu hatanın 2 adet nedeni ve çözümü vardır:

  • Mysql sunucu zaman aşımına uğradı ve bağlantıyı kapattı. Düzeltmek için, my.cnf yapılandırma dosyasında “wait_timeout” mysql değişkeni yeterince büyük olup olmadığını kontrol edin.
  • Mysql sunucu  çok büyük veya yanlış bir paket alırsa,  bağlantıyı kapatır. Düzeltmek için, örneğin my.cnf dosyasında maksimum paket boyutu sınırını yani  “max_allowed_packet” artırabilir. Örneğin ; max_allowed_packet = 128M, daha sonra mysql servisini yeniden başlatın.

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

Problem: 

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

fix:

 


Mysqldump Ignore Table

Mysqldump ile veritabanı dump’ı alınırken  belirli tabloları hariç tutmak için;

Mysqldump Ignore Table

Daha ayrıntılı bilgi için –ignore-table opsiyonunu inceleyebilirsiniz.


Mysql Config Editor Nedir?

mysqlnewlogo1

Mysql 5.6.6 ve üstü sürümlerde komut satırından password girilerek yapılacak girişlerde;

Warning: Using a password on the command line interface can be insecure. Uyarısını alabilirsiniz. Bunun için Mysql5.6.6 sürümüyle birlikte devreye giren mysql_config_editor‘ü kullabilirsiniz.

mysql_config_editor Nedir?

mysql_config_editor (MySQL 5.6.6 ve üstü sürümlerde  mevcuttur) kimlik doğrulama bilgilerini clear text olmayacak şekilde root dizininde .mylogin.cnf adında gizli bir dosyada  saklamaya  olanak sağlar.  Dosya MySQL Server’a bağlanırken  kimlik doğrulama bilgilerini elde etmek için MySQL istemci programları tarafından okunabilir.

Bu dosyaya login için gerekli, host,user,password,port ve socket bilgilerini set edebiliriz. Aşağıdaki örnekte mysql_config_editor kullanımını görebilirsiniz.

Bu dosyayı görüntülemek için:

Tüm liste için:

Daha fazla bilgi için;

http://dev.mysql.com/doc/refman/5.6/en/mysql-config-editor.html


[Warning] ‘proxies_priv’ entry ‘@ [email protected]’ ignored in –skip-name-resolve mode.

Yeni bir mysql kurulumunu yaptınız ve mysql restart ettiğinizde “[Warning] ‘proxies_priv’ entry ‘@ [email protected]’ ignored in –skip-name-resolve mode.”  hatası aldınız. Çözümü aşağıda belirttiğim gibidir.

Problem:
[Warning] ‘proxies_priv’ entry ‘@ [email protected]’ ignored in –skip-name-resolve mode.

Çözüm:

 


Sayfalar:123