MYSQL 5.7.10 SQLSTATE[42000]: Syntax error or access violation Hatası Çözümü

Merhabalar,

Eğer şu an için son sürüm olan Mysql 5.7.10 versiyonuna geçiş yaptıysanız ve aşağıdaki gibi bir hata alıyorsanız

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #6 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xxxxxxxxxxxxxxxxxxx’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Mysql 5.7.10 ile group by kullanımını değiştiğinden , var olan query leriniz çalışmayacaktır. Hatayı çözmek için Mysql eski versiyon ile Mysql yeni versiyon arasındaki compability farkını gidermek için aşağıdaki komut satırını çalıştırmanız yeterli olacaktır.

SET GLOBAL sql_mode = ”;

 

www.mysqlturkiye.com

 

3 Comments

  • Tufan Kaplan / 26 Temmuz 2016 at 12:31

    mysql> SET GLOBAL sql_mode = ”;
    ERROR 1231 (42000): Variable ‘sql_mode’ can’t be set to the value of ‘”’

    Cevapla
    • admin / 26 Temmuz 2016 at 13:04

      bu sekilde my.cnf icinde tanimlayabilirsiniz. Restart gerektirir.
      sql_mode = ”

      Bu parametre dinamiktir. Asagidaki gibi tirnak isaretleri ile bos olarak da set edebilirsiniz. Mysql versiyon 5.7 olmali

      SET GLOBAL sql_mode = ”;

      Cevapla
      • Tufan Kaplan / 27 Temmuz 2016 at 01:24

        Sorunumu çözdüm
        Ubuntu : 16.4
        Mysql : 5.7.13

        File : /etc/mysql/mysql.conf.d/mysqld.cnf

        find :
        thread_cache_size = 8
        after:
        sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

        ——————-
        en kısa anlatım
        [mysqld] ibaresinin altında değerlerin arasında biryerde olması yeterli

        Cevapla