Назад | Перейти на главную страницу

Строгий режим MySQL застрял

После обновления до MySQL 5.5 из Remi-DB (CentOS 6) у нас возникла проблема, когда при каждой перезагрузке наш SQL-сервер возвращался в строгий режим:

mysql> SELECT @@GLOBAL.sql_mode;
+--------------------------------------------+
| @@GLOBAL.sql_mode                          |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

Затем запускаю команду:

    mysql> SET GLOBAL sql_mode="";
Query OK, 0 rows affected (0.00 sec)

И это отлично работает для сеанса, но при перезапуске это изменение теряется (я также пробовал установить sqlmode "SET SESSION".

Также хочу отметить, что пробовал это в my.cnf файлы тоже.

Единственное жизнеспособное решение - закодировать файл инициализации для запуска SET GLOBAL sql_mode при перезапуске, но это громоздко, раздражает и необоснованно, должен быть способ заставить эту работу работать сразу же.

Я безрезультатно пытался переустановить SQL-сервер. (Однако я, конечно, извлек данные из резервной копии, поскольку это рабочий сервер.)

Это тоже укусило меня на Percona Server v5.5.30-30.1-log.

Видеть: http://bugs.mysql.com/bug.php?id=68643

и проверьте наличие /usr/my.cnf или аналогичного файла ($ MYSQL_HOME / my.cnf), который мог быть создан mysql_install_db.

Это отменяло настройку sql_mode во всех других наших файлах конфигурации.

Добавьте это в свой my.cnf и перезапустите MySQL. Убедитесь, что после этого нет другой строки, которую можно было бы перезаписать.

Заменить sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

с участием

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

иногда также может работать добавление строк ниже. Попробуйте сначала, а если не сработает, попробуйте эти.

sql-mode=""

или

sql-mode="TRADITIONAL"

Я знаю, что это старый, но если кому-то это понадобится:

Я получал это с MySQL Server 5.6 на Windows 7 x64.

Оказывается, он загружает сюда файл my.ini:

C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

Хотя MySQL был установлен и запускается отсюда:

C:\Program Files\MySQL\MySQL Server 5.6

Изменение режима sql в ProgramData ini на следующее, а затем перезапуск MySql решил проблему:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"