log_bin_trust_function_creators problemi

MySQL’de fonksiyon oluşturmaya çalışırken aşağıdaki hatalar ile karşılaşıyorsanız çözüm kolay.
Binary log aktif edilmiş ise bu hatayı alırsınız.

ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe  og_bin_trust_function_creators variable) 

Çözmek için MySQL komut satırından aşağıdaki komutu yazın.

SET GLOBAL log_bin_trust_function_creators = 1;

Fonksiyon oluşturma işiniz bittiğinde bu değeri tekrar varsayılan haline döndürmeniz tavsiye edilir. Çünkü bu paremetrenin bilinen iki handikapı vardır :

1. Master veritabanı slave veritabanına senkronize olurken arada veri kaybı yaşayabilirsiniz.
2. Restore ettiğiniz veriler orjinal verilerden farklı olabilir.

Daha detaylı bilgi için :

http://dev.mysql.com/doc/refman/5.1/en/stored-programs-logging.html

inceleyebilirsiniz.

Posted in Genel, MySQL on May 23rd, 2008 by Kürşad DARA | | 0 Comments

Windows’tan Linux’e mySQL taşıdıktan sonrası…

Eğer Windows’taki mySQL veritabanınızı Linux altına taşımak durumunda kalırsanız ve kod tarafında tablo isimlerini büyük küçük harfe dikkat etmeden kullandı iseniz sorunla karşılaşabilirsiniz. O yüzden /etc/my.cnf dosyasına aşağıdaki parametreki eklerseniz bu sorun ile uğraşmak zorunda kalmanız gerekmeyecek.

lower_case_table_names=1

Posted in MySQL on May 23rd, 2008 by Kürşad DARA | | 0 Comments

mysql X line(s) were cut by GROUP_CONCAT()

bu hatayı alıyorsanız sql querylerinde concat kullandığınızda aşağıdaki şekilde çözebilirsiniz.

select @@global.group_concat_max_len;
@@group_concat_max_len: 5000;

bu değeri kendinize göre ayarlayabilirsiniz.

Posted in MySQL on May 2nd, 2008 by Kürşad DARA | | 0 Comments

mysql [ERROR] Could not open log file hatası

mysql kurulum dizini altından *.index dosyalarını silip mysql i restart edin.

Posted in MySQL on May 2nd, 2008 by Kürşad DARA | | 0 Comments

mysql Cannot call SHOW INNODB STATUS because skip-innodb is defined hatası

mysql de innodb disabled olmuş ise ve config dosyasında skip_innodb yok ise yapmanız gereken şudur :

mysql kurulum dizini altındaki ib_logfile0 ve ib_logfile1 dosyalarını silip mysql i restart etmek.

Posted in MySQL on May 2nd, 2008 by Kürşad DARA | | 0 Comments