MySQL - как отключить strict mode - строгий режим

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2024
Перейти к:навигация, поиск

Доступная цена

MySQL - как отключить strict mode - строгий режим

Ошибка:

The sql-mode strict_trans_tables is enabled in your mysql server, please contact your host provider to disable it.


По-умолчанию, strict mode включен (в версии mysql 5.7.x) и это можно проверить через

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| 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 |
+------------

Обратите внимание на "STRICT_TRANS_TABLES" - это и есть строгий режим.

Отключить его молжно через конфиг my.cnf (Для Ubuntu - /etc/mysql/my.cnf):

# vi /etc/mysql/my.cnf
[mysqld]
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

либо ввобще снять все ограничения

[mysqld]
sql_mode = 


и перезагрузить mysql сервер:

# systemctl restart mysql


Проверяем заново:

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-----------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                           |
+---------------+-----------------------------------------------------------------------------------------------------------------+
| sql_mode      | 
IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |