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 |