Проверьте свой sql режим DB с:
SELECT @@[GLOBAL|SESSION].sql_mode;
Если это пусто или не набор, используйте:
SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'
БУДЬТЕ ОСТОРОЖНЫ! Если Вы используете GLOBAL
, это не непосредственное изменение, необходимо перезапустить соединение для применения установки.
Так, если Вы восстанавливаете данные от одного DB до другого, например, и Вы не уверены, применяется ли эта установка, использовать SESSION
для непосредственного изменения (сбрасывает когда заключительное соединение). При выполнении вставьте 0 значений, и они не изменятся даже если sql_mode
изменяется.
Сбрасывать этот режим (и другие) использование
SET [GLOBAL|SESSION] sql_mode=''
Нулевым автоинкрементным значениям не рекомендуют использоваться, потому что это не установлено по умолчанию в mysql базах данных.
Поскольку больше информации проверяет mysql dev тема страницы на этом
Спасибо за размещение дополнительной информации.
Я довольно много изучил это, и не смог найти способ воспроизвести эту проблему.
Я обнаружил, что iptables не работает. На самом деле нет никаких параметров командной строки, которые заставили бы его прочитать файл, предоставленный пользователем. Его справочная политика SELinux также не определяет необходимость чтения произвольных файлов.
Я подозреваю, что некоторые файлы в вашей целевой системе имеют неправильную маркировку. Это могло произойти, если, например, кто-то редактировал копию файла конфигурации iptables в домашнем каталоге пользователя и перемещал его в / etc / sysconfig / iptables
вместо того, чтобы копировать. При перемещении файла сохраняется его контекст SELinux, поэтому в его месте назначения будет неправильный контекст. При копировании файла создается новый файл с контекстом по умолчанию для нового местоположения, что почти всегда является правильным контекстом.
Если это неправильно помеченные файлы, то запуск restorecon
должен исправить это. Чтобы быть уверенным, я бы просто переименовал всю файловую систему. Вы можете сделать это без перезагрузки, запустив:
restorecon -r -vv /
Или вы можете просто пометить файлы, которые могут быть затронуты:
restorecon -r -vv /etc
Параметр -r делает его рекурсивным, а -vv делает его более подробным.
Также возможно, что Файл, который iptables хочет прочитать, связан с файлом в домашнем каталоге пользователя. В текущей справочной политике iptables имеет доступ к чтению / записи / etc / sysconfig / ip6? Таблиц. *
.
И последнее замечание: похоже, ваша система имеет SELinux в разрешающем режиме. Это означает, что эти события регистрируются, но фактически не отклоняются. Вы можете восстановить принудительный режим, запустив setenforce 1
. Затем посмотрите, что сломается.