В my.cnf добавил
[mysqld]
sql-mode="NO_BACKSLASH_ESCAPES,STRICT_ALL_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
innodb_strict_mode=ON
после перезапуска сервера получил
SELECT @@GLOBAL.sql_mode
@@GLOBAL.sql_mode
---------------------------------------------------------------------------------------------------------------------------
NO_BACKSLASH_ESCAPES,STRICT_ALL_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
но текущий sql_mode
SELECT @@sql_mode;
@@sql_mode
------------
Соответственно база не генерит ошибки при вставке не правильных данных как хотелось бы. Да я могу после поднятия каждого коннекта делать в SQL
SET sql_mode = 'NO_BACKSLASH_ESCAPES,STRICT_ALL_TABLES,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Но тогда возникает вопрос а зачем я собственно определил в my.cnf глобальный SQL Mode?
Как задать можно еще SQL Mode для ользователя?
Вот здесь
http://rpbouman.blogspot.com/2009/01/my … tions.htmlувидел вот такую жесть
CREATE USER user@host IDENTIFIED BY 'password'
SESSION DEFAULTS SET
SQL_MODE := 'TRADITIONAL,NO_ENGINE_SUBSTITUTION,IGNORE_SPACE,PIPES_AS_CONCAT,ANSI_QUOTES'
, AUTOCOMMIT := OFF
, STORAGE_ENGINE := INNODB
;
но она не рабочая.