how to select hibernate envers audited dates in mysql

just select dates is easy like this

SELECT FROM_UNIXTIME( revtstmp/1000 )   FROM revinfo;

if you want the detailed data result you can do like this.

SELECT r.rev,FROM_UNIXTIME( revtstmp/1000 ),pa.* FROM revinfo r
left join picture_aud pa on pa.rev=r.rev;

well you just need to change table name up there picture to what ever is your table name is.

mysql select log

normalde gelen her sql in logu tutulmaz ama diyelimki bir uygulama geliştiriyorsunuz ve mysql’den sql hatası geliyor napcaz. o sql i görcez. bende limit ?limit dediğim yerde abuk bir hata geliyor. sonuçda limit ne kadar hata yapabilirimki. windowsda bu işlem biraz zahmetli ki ortamım linux değil.  general_log diye bir argüman var mysql dökümantasyonda ama bi türlü yerini gösteremiom windows 7 de log u conf dan veremedim. bu durumda şöyle yapıyoruz

SET GLOBAL general_log = ‘ON’; komutu ile çalışan mysql de sql logu aktif ediyoruz. sonra mysql administrator ile girip baktığımızda aynen sql leri görüyoruz.

bu arada benim hatam ?limit değişkenine string atıyormuşum oda tırnak içinde yazarmış limit ’12’ buda hatayı patlatırmış. neyse logda gördüm düzelttim tıkanana çare =)

sıralı gitmesi gereken verilerdeki eksik id’leri bulmak

database de bir kolonuzun sıralı gitmesi gerekiyor. 1 2 3 4 5 6 7 8 9 gibi sıra sıra olması gereken bir kolonunuz var ama nerden insert yapıyorsanız bu kolona ordan bi şekilde sırayı bozup veri gönderiyorsunuz ve bunu çözme şansınız yok. şimdi ne yapabilirsiniz 🙂

tabiiki arkadaşınıza şunu sorarsınız. olm bu veriler sıralı olmalı ama arada boşluklar var ve öyle bi kayıt tabloda olmadığı için nasıl select ederim bilemiyorum.

bende bunu epey aradım düşündümde bulamadım 🙂 yani olmayan kayıdı nasıl bulabilirsinki bütün database de arama mantığı olan veriler üstünedir 🙂 neyse hemen örnek geliyor


select l.id + 1 as start
from tablo as l
  left outer join tablo as r on l.id + 1 = r.id
where r.id is null;

kendinden kendine left outer joinli selectimizde id nin null olduğu yerleri ver ve id her zaman id+1 e eşit olsun diye bir tarama yapan bu mükemmel select sonuç olarak tabloda eksik olan id leri tıkıt tıkır sıralıyor.

duplike verilerin olduğu satırları yakalamak

mysql veya mssql hangi database i kullanıyorsanız kullanın yazılım gelişim sürecinde illaki birgün bir kolona unique vermeniz gerekecekdir ve buda var olan veriler yüzünden problem olacakdır ve tanıdığınıza soracaksınız: aynı verinin/duplikasyon/çoklanan olduğu satırları nasıl bulabilirim ?

mysql için örnek:


select unique_olmasi_gereken, count(*) from tablo
group by unique_olmasi_gereken
having count(*) > 1;

sonra isterseniz o satırların idlerine göre silersiniz örnek


delete from tablo where satir_id in (select satir_id,unique_olmasi_gereken, count(*) from tablo
group by unique_olmasi_gereken
having count(*) > 1;)

tube8.com patladı göstermeliyim :)

tube8 alexa sırası 70 olan bir porno sitedir. akşam üstü son turumu atıom bende 🙂 bakın ne verdi:

Warning: mysql_connect() [function.mysql-connect]: Too many connections in /www/tube8.com/inc/init.inc.php on line 49

Warning: mysql_query() [function.mysql-query]: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) in /www/tube8.com/inc/init.inc.php on line 59

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/tube8.com/inc/init.inc.php on line 59
Mysql error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
UPDATE videos SET views=views+1 WHERE id=158623

yani neymiş. gösterim adedi tutmak kolay iş değil her boku mysql e yıkmamak da fayda varmış hele bide alexada 70. olcak kadar öküz trafiğin varsa bu yapılan eşşekliktir =)

mysql bakımı

myisam tabloları arada bir çatlar. mysql in öyle bir yapısı var işte 🙂 neyse sonuçta arada bir bakım ister mysql demek buda.

mysql database e nasıl bakım yapılır.

1. yol server da root veya adminsek komut satırından
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
2. yol serverda root değiliz ve/veya shared hosting bir tane database’i onarcaz.

mysqlcheck -uKullanıcıAdı -pParola -hHostAdresi DB_ADI --auto-repair --check --optimize
bazı tablolar yinede corrupt görünebilir. bu durumda

repair table tablo_adı use_frm;

denenebilir. bazen mysqlcheck “Segmentation fault” veripde göçebilir bu durumda “–auto-repair” yerine “–repair” yapıp deneyebilirsiniz. bu durumda komutumuz şöyle olucak.

mysqlcheck -uKullanıcıAdı -pParola -hHostAdresi DB_ADI --repair --check --optimize
birde işlemi hızlandırmanız gerekebilir ki benim database de çok tablo vardı –fast ve –quick ekledim.

mysqlcheck -uKullanıcıAdı -pParola -hHostAdresi DB_ADI --repair --check --optimize --fast --quick

bu şekilde epey hızlı ve problemli tablolar olsada işine devam etti mysqlcheck ve bütün database bakımı bitti.

mysql’i sun aldı ve mysql sunu bıraktı

aylar önce sun mysql i aldığında herkezin kafasında ulan nolcak mysqli kayıpmı edioz durumu nere gidio gibi sorular vardı. aradan aylar geçdi ve monty(mysql kurucusu ve geliştiricisi) sun’u bırakdı:)

bana sanki sun’a kazık atılmış gibi geldi yaf. sonuçda bunu daha iyi yerlere götürme şansı olan sun’ken adam bırakdı. demekki komuniteye güvenio bu monty adamı bakalım nere gidecek burdan hikaye. bide sidik yarışı olmuş olabilir monty maria yı geliştirmek istiom diyik sanki sun da olmaz başka bişey yap demiş gibi.

yarın bide bakıoz qt cilerde nokia yı bırakıomuş hahaha ne gülerim 🙂