2017-02-10 3 views
0

Я выполнил второй ответ this SO question, чтобы отключить глобальную опцию ONLY_FULL_GROUP_BY.Mysql восстанавливает ONLY_FULL_GROUP_BY после перезагрузки

mysql> SELECT @@sql_mode; 
+-------------------------------------------------------------------------------------------------------------------------------------------+ 
| @@sql_mode                                | 
+-------------------------------------------------------------------------------------------------------------------------------------------+ 
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 
+-------------------------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0,00 sec) 


mysql> SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')); 
Query OK, 0 rows affected (0,00 sec) 


mysql> SELECT @@sql_mode; 
+------------------------------------------------------------------------------------------------------------------------+ 
| @@sql_mode                            | 
+------------------------------------------------------------------------------------------------------------------------+ 
| STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 
+------------------------------------------------------------------------------------------------------------------------+ 
1 row in set (0,00 sec) 

Я только что обнаружил, что после перезапуска службы mysql эта опция восстанавливается.

Это моя среда

Server: Localhost via UNIX socket 
MySQL 5.7.17-0ubuntu0.16.04.1 
Ubuntu 16.04 

Я thinked это было в одном из конфигурационных файлов, но я не могу найти его. Можете ли вы указать мне , где он находится или как навсегда отключить?

ответ

0

Найдено:

Я должен добавить новую строку в /etc/mysql/mysql.conf.d/mysqld.cnf

в конце раздела [mysqld], я добавил

sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 

Затем перезапущен

sudo systemctl restart mysql 

Мои настройки теперь сохраняется после перезагрузки.

1

Вы можете найти (или создать) файл конфигурации в пути, перечисленные здесь - Using Option Files

В конфигурационном файле в [туздЫ] опций раздела записи вам нужно, например:

[mysqld] 
sql_mode=ONLY_FULL_GROUP_BY 
Смежные вопросы