hostname degisikliginde slave calismiyor (mysql master / slave)

September 14th, 2009

bugün yeni bir sugarcrm kurarken fark ettimki slave durmus calismiyor hemen loglara baktim ve bu hatalari gördüm:

CODE:
  1. 090914 16:14:33 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=/var/run/mysqld/mysqld-relay-bin' to avoid this problem.
  2. 090914 16:14:33 [ERROR] Failed to open the relay log '/var/run/mysqld/mysqld-relay-bin.000492' (relay_log_pos 35994)
  3. 090914 16:14:33 [ERROR] Could not find target log during relay log initialization
  4. 090914 16:14:33 [ERROR] Failed to initialize the master info structure

hata slave in hostname i degistigi ve yeniden baslatildigi icin geliyordu,

slave i durdurup yeniden baslatmayi denedim ama bu hata ile karsilastim:

CODE:
  1. ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

biraz google de aradikdan sonra bu yaziyi buldum:

kisaca yapilanlari anlatmaya caliscagim, öncelikle slave i durduralim:

CODE:
  1. mysql> stop Slave;

ardindan

CODE:
  1. mysql> SHOW SLAVE STATUS\G
  2. yazip su  bes satira dikkat ediyoruz
  3.  
  4. *************************** 1. row ***************************
  5. Master_Host: localhost
  6. Master_User: root
  7. Master_Port: 3306
  8. Relay_Master_Log_File: gbichot-bin.005
  9. Exec_Master_Log_Pos: 79

Simdi slave i resetleyip, kaldigi yerden devam etmesini söyliyecegiz.

CODE:
  1. mysql> RESET SLAVE;
  2. mysql> CHANGE MASTER TO MASTER_HOST="localhost", MASTER_USER="root", MASTER_PASSWORD="test", MASTER_LOG_FILE="gbichot-bin.005", MASTER_LOG_POS=79;

*ikinci satiri yukardaki kendi verilerinizle degistirin (sifrenizi /etc/my.cnf de bula bilirsiniz)

simdi slave i yeniden baslatalim:

CODE:
  1. mysql> START SLAVE;
  2. ardindan
  3. mysql> SHOW SLAVE STATUS\G
  4. *************************** 1. row ***************************
  5. Slave_IO_Running: Yes
  6. Slave_SQL_Running: Yes
  7. Seconds_Behind_Master: 8

ve bu üc satira dikkat ediyoruz, Slave* ile basliyan satirlarin ikiside Yes olmali,
Seconds_Behind_Master: 0 yazdigi zaman master slave le ayni demek, eger sizde cok büyük bir sayi yaziyorsa zamanla o gecicekdir, sifir olana kadar

CODE:
  1. mysql> SHOW SLAVE STATUS\G;

ile kontrol ede bilirsniz.

Categories: Veritabani

Tags: No Comments

Tüm Dbleri yedeklemek

August 7th, 2009

Bugün bir bash Script sunacagim, bir serverdeki tüm db leri teker teker yedekleye bilmek icin.

CODE:
  1. #!/bin/bash
  2. echo "Save all db's:"
  3. DBASELIST=`mktemp`
  4. # tüm db lerin isimleri ni topla
  5. # sifreburaya yazan yere root sifrenizi girin (script de iki kez kullaniliyor)
  6. mysqlshow -sifreburaya | awk '{print $2}' | grep -v Databases | sort>$DBASELIST
  7. #Backup hagi klasör icine yüklensin
  8. cd /data
  9. mkdir -p `date +%Y%m%W`
  10. cd `date +%Y%m%W`
  11. for x in `cat $DBASELIST`; do
  12.     echo "Db: $x yedekleniyor";
  13.     mysqldump --opt -psifreburaya $x>$x.sql;
  14. done;
  15. echo "Eski .gz-dosyalarini sil"
  16. rm *.gz
  17. echo "dosyalari SIKISTIR:"
  18. gzip *

bukadar bunu linux makinanida herhangi bir yere yükleyin dosyayi .sh diye kayit edin ardindan
chmod 777 dosya.sh

elden calistirmak icin
sh dosya.sh

cronjob olarakda calistira bilirsiniz.
kolay gelsin

Categories: Linux, Veritabani

Tags: , 2 Comments

Mysql Sifremi unuttum

August 4th, 2009

bugün benimb asima geldigi gibi illa bir cok kisini basi gelir, gün gelir mysql sifremizi ya unuturuz ya kaybederiz, ya yanlis kaydetmis ola biliriz vs. vs.

Sifremizi unuttugumuzda neler yapmamiz gerekiyor.

öncelikle calisan mysql i durduruyoruz.

/etc/init.d/mysql stop

ardindan mysqld_safe i calistiriyoruz:

root@Linux:~# /usr/bin/mysqld_safe --skip-grant-tables &
[1] 6702
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6763]: started

yukardaki [1] in yaninda yazan sayiyi 6702 hatirlayin lazim olacak.

mysql --skip-grant-tables flag i ile calistigi icin sifresiz gene root olarak mysql e baglana biliyoruz:

mysql --user=root mysql

ardindan sifremizi degistirecek olan satiri yaziyoruz:

update user set Password=PASSWORD('yenisifreyiburayayazin') WHERE User='root';

ardindan bu komutuda calistirip cikiyoruz:

flush privileges;

exit yazarak veya strg + c

simdi yukarda [1] in yaninda yazan numarali prozess i yok ediyoruz:

kill 6702

ardindan mysql imizi yeniden baslatiyoruz

/etc/init.d/mysql start

hepsi bukadar yeni root sifrenizle sorunsuzca mysql veritabaniniza baglana bilirsiniz.

Categories: Veritabani

Tags: No Comments

Php 5.3 Windows Destegi

August 1st, 2009

Bilindigi gibi Php dünyasinda Windows hep üvey kardes muamelesi görmüstür, bu Core gelistiricilerinin Unix sistemlerine odaklanmis olduklarindan kaynaklaniyordu.
Performans olsun bazi fonksiyonlar olsun windows da unix de calistigi gibi calismiyordu. Son zamanlarda Microsoft 'un da destegi ile cok emek sarf edilip, fonksiyonlarda, performansda ve stabilitede cok büyük adimlar atildi.

Görüne bilinir en büyük adim ise Php 5.3 ile gelen ve eskiden Windows da calismayipda Programcilarin basini agartan birkac fonksiyon.
Asagida fonksiyonlarin adlarini yaziyorum, daha genis bilgi icin lütfen php.net sayfasini ziyaret ediniz:

Iste artik Windows dada calisan o fonksiyonlar:
- checkdnsrr()
- dns_get_record()
- fnmatch()
- getmxrr()
- getopt()
- imagecolorclosesthwb()
- inet_pton()
- inet_ntop()
- link()
- linkinfo()
- mcrypt_create_iv()
- readlink()
- socket_create_pair()
- stream_socket_pair()
- symlink()
- time_nanosleep()
- time_sleep_until()

Categories: PHP

Tags: , 1 Comment

Php 5.3 genisletilen fonksiyonlar

July 28th, 2009

Bugunki yazimizda sadece php 5.3 de hangi fonksiyonlarin genisletildigine bakacagiz.
Php nin eski versiyonlarinda bulunan, php 5.3 ilede fonksiyon özellikleri genisletilen fonksiyonlar iste bunlar:

- array_reduce()
- clearstatcache()
- copy()
- fgetcsv()
- getimagesize()
- ini_get_all()
- nl2br()
- round()
- stream_context_create()
- strstr()

fonksiyonlarin standart degerleri, calisan programlari etkilemiyecek sekilde hazirlanmistir.
tam detayli bir bilgi icin php.net sayfasini ziyaret etmenizi tavsiye ediyorum.:

Categories: PHP

Tags: , 1 Comment

Php 5.3 yeni fonksiyonlar

July 26th, 2009

Bugünki yazimizda php 5.3 ile gelen yeni fonksiyonlara bakacagiz,
Bana göre lazim ve cok kullanila bilinicek fonksiyonlari anlatmaya calisacagim, daha az kullanilan ve yeni olan fonksiyonlari php.net sayfasindan bakmanizi tavsiye ederim.

- array_replace()
Php de iki ayri Arrayi birtane haline getirme oldukca sIk rasladigimiz bir olay, bu isi yapan bir array_merge fonksiyonu var aslinda, array_replace ile arasindaki fark ise, array_replace, ayni olan anahtarlari sadece bir kez ekliyor.
bir anahtar iki arraydede varsa ikinci arraydeki deger kullanilir

PHP:
  1. $an = array(
  2. "aa",
  3. "ab",
  4. "ac"
  5. );
  6.  
  7. $bn = array(
  8. "bd",
  9. "bb",
  10. "bc"
  11. );
  12.  
  13.  
  14. var_dump(array_replace($an,$bn));
  15. echo "<br />";

cikti:

CODE:
  1. array(3) { [0]=> string(2) "bd" [1]=> string(2) "bb" [2]=> string(2) "bc" }
  2. array(6) { [0]=> string(2) "aa" [1]=> string(2) "ab" [2]=> string(2) "ac" [3]=> string(2) "bd" [4]=> string(2) "bb" [5]=> string(2) "bc" }

- array_replace_recursive()
array_replace gibi birtek bu fonksiyon recursive calisiyor.

-json_last_error()

en son json_decode() fonksiyonu cagrildiginda olusan hatalari gösterir.
fonksiyon bir integer deger geri verir oda bu dört Konstant dan birisi anlamina geliyor.

PHP:
  1. JSON_ERROR_NONE
  2. JSON_ERROR_DEPTH
  3. JSON_ERROR_CTRL_CHAR
  4. JSON_ERROR_SYNTAX

- lcfirst()
ucfirst in tersini yapar ve kelimenin ilk harfini kücük harf yapar.

- parse_ini_string()
parse_ini_file gibi sadece islenecek olan ini dosyasini bir dosyadan okumaz direk string olarak kabul eder.

diger yeni fonksiyonlar:
- preg_filter()
- quoted_printable_encode()
- stream_context_set_default()
- stream_support_lock

Categories: PHP

Tags: , 1 Comment

Php 5.3 Migrasyon sorunlari

July 24th, 2009

php 5.3 serimizin ikinci yazisinda, php5.3 e geciste karsilasila bilinicek bir kac hataya deginecegiz.

Öncelikle, php 5.3 ile gelen iki anahtar sözcük var, bunlar namespace ve goto, sinif, metod ve fonksiyonlarinizi bu sekilde adlandirdiysaniz, php 5.3 e geciste bunlarin adini degistirmek zorunda kalicaksiniz, yoksa bu hata mesaji ile karsilasa bilirsiniz:

CODE:
  1. Parse error: syntax error, unexpected T_GOTO, expecting T_STRING or '(' in C:\xampp\htdocs\php53\keywords.php on line 2

diger anahtar sözcükleri burada bula bilirsiniz:

sertlesen oop kurallari:
abstract methodlar artik private olamazlar,
yani su sekil bir kodunuz varsa hata verecekdir.

PHP:
  1. abstract class Foo
  2. {
  3. abstract private function Bar() {}
  4. }

hata mesaji:

CODE:
  1. Fatal error: Abstract function Foo::bar() cannot be declared private in C:\xampp\htdocs\php53\abs.php on line 4

Metod Signaturu:

PHP:
  1. class Foo
  2. {
  3. public function Bar($a)
  4. {
  5. }
  6. }
  7.  
  8.  
  9. clas Foo2 extends Foo
  10. {
  11. public function Bar($a,$b){}
  12. }

yukardaki gördügümüz gibi extend edilen bir sinifda method signaturu uymadigi zaman bir E_STRICT hatasi veriyordu
bu hata mesajini görmek istemiyorsak b ye bir default deger vermemiz yetiyor.

PHP:
  1. clas Foo2 extends Foo
  2. {
  3. public function Bar($a,$b=null){}
  4. }

Sihirli islemler, __get, __set, __isset, _unset, __call, __callstatic artik public deyan etmek lazim ve onun yaninda artik static de olalamazlar.
__toString e parametre vermek de yasaktir

ve son olarakta timezone ortam degiskeni [date_default_timezone_set('Europe/Berlin')] ayarlanmamissa php 5.3 de yine bir hatayla karsilasa bilirsiniz.

Categories: PHP

Tags: , 1 Comment

php 5.3 Düsen ve istenmeyen özellikler

July 20th, 2009

Php 5.3 serimizin ilk yazisi php de istenmeyen özellikler hakkinda olacakdir.
Nadiren kullanilan ve uzun zamandir kullanilmamasini tavsiye edilen bazi özellikler, php 5.3 de artik DEPRACED yani istenmeyen/gereksiz olarak isaretlenecek. Bu Hata mesajini alan Fonksiyonlar php 6 versionu ile tamamen silinecektir.

mesela

CODE:
  1. Deprecated: Function ereg() is deprecated in C:\xampp\htdocs\php53\ereg.php on line 3

ereg* ile gelen tüm fonksiyonlar da bu hata ile karsilasacaksiniz.
Ereg yerine daha hizli ve Binär verilerle calisa bilen preg* fonksiyonlarini kullanmaniz gerekiyor.

o fonksiyonlar disinda split fonksiyonu da ereg fonksiyonlarini kullandigi icin ayni hatayi verecektir, ondan split yerine preg_split fonksiyonunu kullanmaniz gerekmektedir.

Gönderimler (referencler)

Bu sekil gönderi yapmak artik bir depraceted hatasi verecektir.:

PHP:
  1. $x=0;
  2. function foo($a) {
  3.     //vs.
  4.     $a++;
  5. }
  6. foo(&$x);

Fonksiyonu yazan Programci a nin reference olarak geldigini bilmediginden istenmedik seyler yapa bilir.

Bu yüzden gönderimleri fonksiyon kisminda yapmaniz daha dogru:

PHP:
  1. $x=0;
  2. function foo(&$a) {
  3.     //vs.
  4.     $a++;
  5. }
  6. foo($x);

tabiki yukardaki yazmis oldugumuz fonksiyon, güzel bir stil degil ayni sonucu a yi return ile geri yolluyarakda elde ede bilirdik.

PECL i kaydirilan Özellikler:

-dbase
-fbsql
-fdf
-ncurses
-ming
-msql
-sybase (bu eski sybase, yeni versiyonu olan sybase_ct php de standard olarak bulunmakda.)

geri kalan özellikleri kullanmak isteyenler pecl.php.net sayfasindan indirip, manuel kurmalari gerekir.

Zend-Engine-1 Uyumlulukmodu

Php5 ciktiginda php4 den php5 gecisler kolaylassin diye ze1_compatibility_mode ayari eklenmisti, php 5.3 ile bu ayar cikartildi.

daha genis bilgi icin: tikla

Categories: PHP

Tags: , 1 Comment

Php 5.3 yenilikler, degisikliler vs.

July 20th, 2009

Bir önceki yazimizda degindigimiz gib Php 5.3 cikti ve phpcilerin en cok merak ettikleri neleri bilmek gerekiyor, özellikleri nedir daha dogrsusu nedir bu php5.3.
Evet bu php 5.3 serisi ile azda olsa bildiklerimi okuduklarimi buradan yazacagim.
Yazilarimda okudugum kitapdan alintilar bulunuyor: php 5.3 die Neuerungen (almanca)
Bilmek istediginiz özel bir konu varsa yaza bilirsiniz ona deginmeye calisirim.
Asagida tüm simdiye kadar yazilan linkleri bula bilirsiniz:

- Düsen ve istenmeyen özellikler
- Migrasyon sorunlari
- yeni Fonksiyonlar
- genisletilen Fonksiyonlar
- Windows destegi
- Namespace

Categories: PHP

Tags: , No Comments

php 5.3 yayinlandi (released)

June 30th, 2009

Uzun zamandir beklenen versiyon sonunda bugun öglen saatlerinde yayinlandi.
Bir cok yenilikle geldi php nin yeni versiyonu.
php 6 icin düsünülen hemen hemen unicode harici tüm yenilikler 5.3 ile yayinlandi.
ilerliyen günlerde yeni fonksiyonlara azda olsa deginmeye calisacagim.

yeni özellikler:
Namespaces
Late Static Binding
Type-Hinting - self, parent, interfaces;
Closures & Lambda
GOTO
NOWDOC
__invoke
__callStatic
__DIR__

ve daha bircok yenilik tüm degisiklikleri görmek icin tiklayin

Release Announcement: http://www.php.net/release/5_3_0.php
Downloads: http://php.net/downloads.php#v5.3.0
Changelog: http://www.php.net/ChangeLog-5.php#5.3.0

Categories: PHP

No Comments

Feed

http://www.skorp.eu /