Biraz önce forumumuzun başına geldi, yanlış sistem saatini düzelttik vbulletin sapıttı, bu durumda ne yapmak lazım:
Ben bunları yaptım, ek olarak yapılması gerekenler olabilir, ancak bunların yeterli olduğu kanısındayım:
Senaryo: Sistem saati 2008-01-08 21:53 ü gösteriyordu oysa saat aslında 2008-01-08 16:40 idi, düzelttim şimdi sistem saat doğru. Ama MySQL içindeki vbulletin mesaj saatleri eski saati gösteriyor...
Serverinizin sistem saati ile gerçek sistem saati arasındaki saniye farkını hesap edin, örneğin fark 5 saat 51 dk olsun bu da 21181 sn ye tekabül etsin.
Şimdi vbullettin deki hatalı saatleri düzeltmek için update edeceğimiz mesaj aralığını hesaplayalım.
Basitçe şu anki doğru saate 20dk ekleyelim '2008-01-08 17:00'
En son postalanan mesaj tarihi de '2008-01-08 21:53' olsun
-- post tablosunu update et
-- thread tablosunu update et
-- private mesaj tablosunu update et
-- search tablosunu update et
Ek olarak memcacehd kullanıyorsanız bu şekilde yeniden başlatın, memcached de sapıtıyor:
Bu komut memcached in process id sini verir
memcached Prosesini öldürün
memcached Prosesini başlatın
Ben bunları yaptım, ek olarak yapılması gerekenler olabilir, ancak bunların yeterli olduğu kanısındayım:
Senaryo: Sistem saati 2008-01-08 21:53 ü gösteriyordu oysa saat aslında 2008-01-08 16:40 idi, düzelttim şimdi sistem saat doğru. Ama MySQL içindeki vbulletin mesaj saatleri eski saati gösteriyor...
Serverinizin sistem saati ile gerçek sistem saati arasındaki saniye farkını hesap edin, örneğin fark 5 saat 51 dk olsun bu da 21181 sn ye tekabül etsin.
Şimdi vbullettin deki hatalı saatleri düzeltmek için update edeceğimiz mesaj aralığını hesaplayalım.
Basitçe şu anki doğru saate 20dk ekleyelim '2008-01-08 17:00'
En son postalanan mesaj tarihi de '2008-01-08 21:53' olsun
-- post tablosunu update et
Kod:
UPDATE `post` set dateline = dateline - 21181
WHERE FROM_UNIXTIME(dateline) between
'2008-01-08 17:00' AND '2008-01-08 21:53';
Kod:
UPDATE `thread` set dateline = dateline - 21181
WHERE FROM_UNIXTIME(dateline) between
'2008-01-08 17:00' AND '2008-01-08 21:53';
Kod:
UPDATE `pmtext` set dateline = dateline - 21181
WHERE FROM_UNIXTIME(dateline) between
'2008-01-08 17:00' AND '2008-01-08 21:53';
Kod:
UPDATE `search` set dateline = dateline - 21181
WHERE FROM_UNIXTIME(dateline) between
'2008-01-08 17:00' AND '2008-01-08 21:53';
Ek olarak memcacehd kullanıyorsanız bu şekilde yeniden başlatın, memcached de sapıtıyor:
Bu komut memcached in process id sini verir
# ps -ef | grep memcached | grep -v grep|awk '{print $2}'
memcached Prosesini öldürün
# kill ekranda_cikan_process_id
memcached Prosesini başlatın
# /usr/local/bin/memcached -u nobody -d -m 64 -l 127.0.0.3 -p 11211