MySQL Repair MyISAM Table – BozulmuşTabloların Onarılması

Herhangi bir nedenden dolayı MySQL databaseinizdeki herhangi bir myisam tablo bozulursa loglarınızda vs. aşağıdakine benzer bir uyarı görebilirsiniz.

Table 'tablo_adi' is marked as crashed and should be repaired

Hatada bahsedilen repair işlemi bir kaç şekilde yapılabilir, Yöntemlerden birisi myisamcheck isimli table maintanence aracını kullanmaktır. myisamcheck MySQL ile birlikte gelen ve myisam tabloları kontrol etmeye, onarmaya ya da optimize etmeye yarayan küçük bir uygulamadır.

Yazinin devami icin tiklayin.


MySQL Full-Text Search Minimum Length Limitini Değiştirmek

MySQL’in fulltext özelliği default olarak 4 ya da daha çok karakterden oluşan kelimeleri indexliyor. Bu durum full-text aramalarında 3 harften oluşan kelimeler için herhangi bir sonuç dönmemesine neden olabiliyor. Örnek olarak  “ssh” ya da “php” gibi 3 harften oluşan sorgular gönderdiğiniz zaman herhangi bir sonuç alamayabiliyorsunuz.

Bu durumun önüne geçmek üzere MyISAM tablolar için kullanılabilecek  “ft_min_word_len”  isimli bir sistem değişken mevcut.  my.cnf dosyasına eklenen bu değişken ile fulltext’e minimum kaç karakterin dahil edileceğini söyleyebilyorsunuz. Örnek olarak bu değeri 3 olarak set etmek ve varolan bir index’i bu değişikliğe göre rebuild etmek için aşağıdaki adımları izleyebilirsiniz:

Yazinin devami icin tiklayin.


MySQL: InnoDB Database Ebatının Küçültülmesi – Shrink ibdata1

MySQL sunucularda özellikle InnoDB  veritabanlarının zamanla şişen data dosyalarını shrink ederek küçültmek, gerek performansa olumlu etkisi gerekse de diskte kapladığı alandan tasarruf anlamında faydalı bir işlemdir.  MyISAM  kullanan bir db’de bu işlem “optimize table” ile yapılabilir ancak InnoDB veritabanlarında shrink işlemi için  MySQL tarafından sunulan herhangi bir araç ya da komut malesef yok. Bu nedenle data dosyasını küçültmek için, db’nin yedeğini aldıktan sonra drop etmek ve ibdata ve ib_logfile dosyalarını silip db’yi yeniden restore etmek gibi dolanbaçlı bir yöntem izlemek gerekiyor.

Yazının devamında işlemlerin nasıl yapılabileceğine detaylı olarak değinmek istiyorum. İlginizi çekerse incelemek isteyebilirsiniz.

Yazinin devami icin tiklayin.


MySQLdump – InnoDB single-transaction ve quick dump

Büyük ve yoğun kullanılan InnoDB veritabanlarının mysqldump ile yedeklenmesı esnasında database’i kullanan uygulamayı bloke etmemek için single-transaction isimli bir özellik bulunuyor.  Sadece InnoDB tablolar için kullanılabilen bu parametre sayesinde yedeklenme sırasında uygulama kesintiye uğramıyor.  Büyük veri tabanlarını (mesela 70-80GB gibi) yedeklemek zaman isteyen bir süreç olduğundan dolayı yedekleme sırasında db’yi kullanan uygulamayı kilitlememek bu anlamda önemli bir nokta haline geliyor.

Single-transaction özelliğini kullanmak için mysqldump cümlesine parametre olarak eklemek yeterli:

# mysqldump --user=kullaniciadi --password=sifre --single-transaction database_adi > database_adi.sql

mysqldump dökümanıında single-transaction ile ilgili açıklama şu şekilde:
Yazinin devami icin tiklayin.


Komut Satırından Mysql Kullanıcı Şifresi Değiştirmek

Bir stemci ya da arayüz sunan bir uygulama üzerinden erişim sağlayamadığınız bir MySQL sunucusunda, varolan bir kullanıcıya ait şifreyi komut satırından değiştirmek için aşağıdaki örnek takip edilebilir. Aslında işlem klasik bir update cümlesi çalıştırmaktan ibaret olsa da sürekli yapılan bir işlem olmadığından bazen unutulabiliyor.

Şifre değiştirmek için sırası ile izlenmesi gereken adımlar şunlar:

1 – ) Shell üzerinden mysql sunucusuna root kullanıcısı ile login olun:

# mysql -u root -p
Enter password:
mysql>

2 -) Kullanıcı bilgileri vs. gibi yapılandırma bilgilerinin tutulduğu mysql db’sine erişim sağlayın:

mysql> use mysql;

3 – ) Adı “falanca” olan kullanıcıya ait şifreyi “yenisifre” olarak değiştirmek için aşağıdaki örnek update komutunu kullanabiliriz.

mysql> update user set password=PASSWORD("yenisifre") where User='falanca';
mysql> flush privileges;

Komut satırından şifre değişikliği için yukarıdaki update cümlesi ile aynı işi yapan SET PASSWORD gibi yönlemlerde mevcut; detay için: http://dev.mysql.com/doc/refman/5.0/en/set-password.html adresinden yararlanabilirsiniz.


Komut Satırından MySQL Kullanıcısı Oluşturmak

Herhangi bir istemci üzerinden erişemediğiniz bir mysql sunucusunda komut satırından yeni bir kullanıcı açmak için aşağıdaki örnekleri takip edebilirsiniz. Bu işlem, temel ve basittir ancak  rutin olmamasından ötürü girilmesi gereken komutların syntax’ları zamanla unutulabilir (En azından kendi adıma durum böyle). Eğer siz de benimle aynı dertten muzdaripseniz aşağıdaki örneklerin faydasını görebilirsiniz.

Yazinin devami icin tiklayin.


MySQL Database Schema Export

Bir mysql database’inin tablo yapısını, tabloların içerdiği veriyi almaksızın çıkartmak için aşağıdaki mysqldump cümlesi kullanılabilir.

# mysqldump --no-data --tables -u kullaniciadi -p db_adi >> db_adi.sql

–no-data parametresini kaldırırsanız, database yapısı içerdiği verilerle alınacaktır.

Bunun yanısıra database’iniz de tanımlı stored procedurler ya da function’lar var ise bu rutinleri de almak için mysqldump’ı aşağıdaki gibi kullanabilirsiniz.

# mysqldump --no-data --tables --routines -u kullaniciadi -p db_adi >> db_adi.sql

Daha fazla bilgi için bkz:

http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html


Mysql Server İçin Root Şifresi Tanımlamak

Mysql server kurulumlarında root şifresi ön tanımlı olarak boş gelmektedir, bu nedenle kurulumun hemen ardından, bir root şifresi tanımlamak gerekmektedir. Bu işlemi komut satırından yapabilmek için iki yol bulunuyor. Birincisi, mysql server ile birlikte gelen mysqladmin aracını kullanmak, ikincisi ise direk olarak mysql’e bağlanarak bir sql cümlesi ile root kullanıcısına bir password set etmektir.

Bu yazıda, her iki yöntem de kullanılarak, ilk kurulum sonrasında, root passwordunun nasıl tanımlanabileceği anlatılmaktadır.

Yazinin devami icin tiklayin.

Sonraki Sayfa »