MySQL: установка режима sql постоянно

через клиент командной строки MySQL я пытаюсь установить глобальный mysql_mode:

SET GLOBAL sql_mode = TRADITIONAL;

это работает для текущего сеанса, но после перезагрузки сервера sql_mode возвращается к своему умолчанию:", пустая строка.

Как я могу навсегда установить SQL_MODE в традиционный?

если уместно, MySQL является частью пакета WAMP.

спасибо.

2 ответов


добавьте это в свой my.cnf файл (или мой.ini, если вы используете windows):

sql_mode="TRADITIONAL"

и перезапустите сервер


MySQL sql_mode "TRADITIONAL", a.к. a. "строгий режим", определяется документы MySQL as:

"дайте ошибку вместо предупреждения" при вставке неправильного значения в столбец.

вот как убедиться, что ваш sql_mode установлен в "TRADITIONAL".

во-первых, проверьте текущую настройку:

mysql
mysql> SELECT @@GLOBAL.sql_mode;
+-------------------+
| @@GLOBAL.sql_mode |
+-------------------+
|                   |
+-------------------+
1 row in set (0.00 sec)

этот возвращенный пробел, по умолчанию, это плохо: ваш sql_mode не установлен в "ТРАДИЦИОННЫЙ."

поэтому отредактируйте файл конфигурации:

sudo vim /etc/mysql/my.cnf

добавьте эту строку в раздел с надписью [mysqld]: sql_mode="TRADITIONAL" (как указал fancyPants)

перезапустите сервер:

sudo service mysql restart

затем проверьте еще раз:

mysql
mysql> SELECT @@GLOBAL.sql_mode;
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                                                                    |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
| STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

успехов! Теперь ты золотой.