Итак, у меня есть сайт, размещенный на VPS-хостинге Hostinger по плану 2, и он использует MySQL в качестве базы данных, а ОС моей виртуальной машины — Ubuntu 18.04.
Мне приходится держать MySQL strict mode
отключенным глобально все время, чтобы некоторые части сайта работали. Для контекста, я управляю только серверной частью в данный момент, поэтому я не могу исправить части этого сайта, которые требуют моего отключения strict mode
. Эти исправления находятся на стороне разработчиков, и они в конечном итоге займутся ими в какой-то момент.
Теперь проблема, с которой я столкнулся, заключается в том, что когда я отключаю strict mode
, он автоматически включается через несколько часов (или день). Это связано с запланированными перезапусками сервера, которые, похоже, есть у VPS-серверов Hostinger. Всякий раз, когда сервер перезагружается, MySQL strict mode
снова включается.
Как мне сделать так, чтобы он strict mode
был постоянно отключен, пока я сам его не включу? Я, конечно, не хочу включать его каждые несколько часов... :)
Редактировать: В настоящее время я set global sql_mode='';
отключаю MySQL strict mode
.
решение1
Если вы отключите строгий режим MySQL с помощью приведенной ниже команды, он будет восстановлен после перезапуска сервера.
установить глобальный sql_mode='';
Чтобы установить/отключить его навсегда, необходимо отредактировать значение в файле конфигурации mysql.
/etc/mysql/my.cnf или/etc/my.cnfна основе вашей ОС.
Найдите следующую строку:
sql_mode = "STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Замените ее следующей строкой: Если строка не найдена, вставьте ее в раздел [mysqld] (если раздела [mysqld] нет, пожалуйста, создайте его).
[mysqld]
sql_mode= ""
Перезапустите службу MySQL, чтобы изменения вступили в силу.