gurcanozturk.com

başka türlü bir şey benim istediğim

mySQL destekli Bind kurulumu

BIND, IT dünyasında en çok kullanılan DNS sunucu ama yapılandırması ve sadece CLI ile yönetilebiliyor olması bazen sinir bozucu olabiliyor :) Bu amaçla Bind’i mySQL destekli kullanıyoruz. İşte Ubuntu sunucuya nasıl kurulduğu ve yapılandırıldığı.

Öncelikle, Ubuntu ile gelen default bind9 mysql destekli gelmiyor bu yüzden biz kaynak koddan derleyerek kullanacağız.
Read the rest of this entry »

Zmanda ile mySQL veritabanı yedekleme

mySQL veritabanını yedeklemek için son günlerde zManda kullanmaya başladım. Oldukça hızlı ve başarılı şekilde full ve incremental yedekleme yapabiliyor olması hoşuma gitti. Böylece istediğiniz gün ve saate geri dönebiliyorsunuz. Kurması ve çalıştırması oldukça kolay. Dokümanda zManda mySQL backup Debian tabanlı sistemler için anlatılmıştır.

Read the rest of this entry »

mySQL ‘de “ERROR 1201 (HY000): Could not initialize master info structure” hatası

Master-Slave olarak ayarladığınız mySQL replication işleminin durduğunu farkettiniz, tekrar başlatmak için “start slave” komutunu verdiniz ancak aldğınız hata “ERROR 1201 (HY000): Could not initialize master info structure”. Ne yapmalısınız?

Bu sorun benim başıma slave sunucu restart olduktan sonra geldi. mySQL otomatik olarak replication işlemini başlatamamış. Sorunun çözümü basit. mySQL’e root olarak bağlanın.

~ # mysql -h hostname -u root -ppassword
mysql> stop slave ; reset slave;
mysql> change master to master_host=’master-mysql.domain.local’, master_user=’replica’, master_password=’PASSWORD’, master_log_file=’mysql-bin.00010001′, master_log_pos=10637371;

mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master-mysql.domain.local
Master_User: replica
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.00010001
Read_Master_Log_Pos: 10637371
Relay_Log_File: mysqld-relay-bin.000001
Relay_Log_Pos: 21204900
Relay_Master_Log_File: mysql-bin.00010001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 10637371
Relay_Log_Space: 208190798
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 21
1 row in set (0.00 sec)
mysql>

Slave: received end packet from server, apparent master shutdown:

Diyelim ki 1 master ve 2 slave sunucudan olusan mysql replikasyonu yaptiniz, ama slave sunucunun mysqld loglarinda surekli olarak “Slave: received end packet from server, apparent master shutdown:” goruyorsunuz, replication delay_time ise NULL gorunuyor sebepsiz yere. Problem ne ?

Aslinda cok basitmis problem, 2 slave sunucuda da ayni ID numarasini verirseniz, bu hatayi aliyorsunuz, tum sunucularin my.cnf dosyasinda server-id degiskenini farkli yapmalisiniz.

mysqlhotcopy timeout problemi

mysqlhotcopy, perl ile hazırlanmış bir online yedekleme aracı. Bu araç yardımıyla mySQL servisini durdurmadan veritabanı yedeklemesi yapılabiliyor.

mysqlhotcopy ile çok kayıt bulunan bir tablolar içeren bir veritabanını yedeklemeye çalışıyorsanız aşağıdaki hatayı almanız kuvvetle muhtemel.

DBD::mysql::db do failed: MySQL server has gone away at mysqlhotcopy line 528.

Çözüm?

Aşağıdaki dosyalardan biri içerisine;

Debian tabanlı sistemler için; /etc/mysql/my.cnf
RedHat tabanlı sistemler için; /etc/my.cnf
Kullanıcı bazlı ayarlama için; $HOME/.my.cnf

[mysqlhotcopy]
interactive_timeout = 3600
wait_timeout = 3600

satırlarını ekleyip mysql servisini yeniden başlatın.

‘reading initial communication packet’, system error: 111.

PHP ve mySQL ile ugrasan bir insanoglunun karsisina cikabilecek garip hata mesajlarindan biri daha iste. Sorunun cozumu aslinda cok cok basit ve google ile yakin arkadas iseniz hemen cozebiliyorsunuz. Yine de yazalim, belki lazim olur birilerine.
Cozum:
mysql_connect(127.0.0.1,kul,parola) yerine mysql_connect(localhost,kul,parola) yazmaniz gerekiyor. Benden soylemesi