웹에서 컨텐츠 정보 수정이 안되는 경우 당연히 access_log는 정상적으로 기록되고 error_log는 뜨지 않습니다. DB my.cnf를 의심해보자.
서버 이전의 경우 이전 서버를 확인하세요.
이전 서버에서
mysql -u 루트 -p
선택 @@sql_mode;
@@GLOBAL.sql_mode 선택;
@@SESSION.sql_mode 선택;
해당 값을 그대로 확인한 다음 my.cnf에서 수정해야 합니다.
MariaDB ((없음))> SELECT @@sql_mode; 
+————————————————- ——————————————+ 
|  @@sql_mode | 
+————————————————- ——————————————+ 
|  STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 
+————————————————- ——————————————+ 
세트의 1행(0.000초) 
MariaDB ((없음))> SELECT @@GLOBAL.sql_mode; 
+————————————————- ——————————————+ 
|  @@GLOBAL.sql_mode | 
+————————————————- ——————————————+ 
|  STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 
+————————————————- ——————————————+ 
세트의 1행(0.000초) 
MariaDB ((없음))> SELECT @@SESSION.sql_mode; 
+————————————————- ——————————————+ 
|  @@SESSION.sql_mode | 
+————————————————- ——————————————+ 
|  STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | 
+————————————————- ——————————————+ 
세트의 1행(0.000초)
vi /etc/my.cnf
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
위의 설정을 권장합니다
sql_mode 설정
ONLY_FULL_GROUP_BY 
선택 목록, HAVING 조건 또는 ORDER BY 목록이 GROUP BY 절에 이름이 지정되지 않았거나 GROPU BY 열에 고유하게 존재하는 열(예: 기본 키 또는 고유 키)을 참조하는 경우 쿼리를 거부합니다. 골재. 
STRICT_TRANS_TABLES 
가능한 경우 트랜잭션 스토리지 엔진 및 비트랜잭션 스토리지 엔진에 엄격한 SQL 모드를 활성화하십시오. 
엄격한(엄격) SQL 모드
Strict 모드는 MySQL이 INSERT 또는 UPDATE와 같은 데이터 수정 구문에서 유효하지 않거나 누락된 값을 처리하는 방법을 제어합니다.
여러 가지 이유로 값이 유효하지 않게 될 수 있습니다.
예를 들어 열에 잘못된 데이터 유형이 있거나 범위를 벗어난 경우입니다.
DEFAULT가 명시적으로 정의되지 않은 NULL이 아닌 열에 새 행을 삽입하면 값이 없을 때 값이 누락됩니다(NULL 열의 경우 값이 없으면 NULL이 삽입됨).
Strict 모드는 CREATE TABLE과 같은 DDL 구문에도 영향을 미칩니다.
NO_ZERO_IN_DATE 
NO_ZERO_IN_DATE 모드는 서버가 0이 아닌 연도 부분 또는 0일 부분이 포함된 날짜를 허용하는지 여부에 영향을 줍니다. 
(이 모드는 ‘0000–00–00’이 아니라 2010–00–01’ 또는 ‘2010–01–00’과 같은 날짜에 영향을 미칩니다. ‘0000–00–00’이 서버에서 허용되는지 여부를 제어합니다. 이렇게 하려면 NO_ZERO_DATE 모드를 사용하십시오).
NO_ZERO_IN_DATE의 효과는 엄격한 SQL 모드의 활성화 여부에 따라 다릅니다.
이 모드가 비활성화되면 0이 포함된 날짜가 허용되고 삽입 시 경고가 발생하지 않습니다. 
이 모드를 사용하면 0이 포함된 날짜가 ‘0000–00–00’으로 삽입되고 경고가 발행됩니다. 
이 모드와 엄격 모드가 모두 활성화된 경우 0이 있는 날짜는 허용되지 않으며 삽입할 때 IGNORE가 제공되지 않으면 오류가 발생합니다.  INSERT IGNORE가 UPDATE IGNORE를 수행하면 ‘0000–00–00’으로 0이 포함된 날짜가 삽입되고 경고가 발생합니다. 
NO_ZERO_IN_DATE는 MySQL 8.0에서 더 이상 사용되지 않습니다. 
NO_ZERO_IN_DATE는 엄격 모드의 일부가 아니며 엄격 모드와 함께 사용해야 하며 기본적으로 활성화되어 있습니다.
엄격 모드를 활성화하지 않고 NO_ZERO_IN_DATE를 활성화하거나 그 반대의 경우에도 경고가 발생합니다.
NO_ZERO_DATE 
NO_ZERO_DATE 모드는 서버가 유효한 날짜로 ‘0000–00–00’을 수락하는지 여부에 영향을 줍니다.  이 모드는 엄격한 SQL 모드의 활성화 여부에 따라 다른 효과를 가집니다. 
이 모드가 비활성화되면 ‘0000–00–00’이 허용되고 삽입 시 경고가 발행되지 않습니다. 
이 모드가 활성화되면 ‘0000–00–00’이 허용되고 삽입 시 경고가 발생합니다. 
이 모드와 엄격 모드가 모두 활성화된 경우 ‘0000–00–00’은 허용되지 않으며 삽입 시 IGNORE가 제공되지 않는 한 오류가 발생합니다. 
INSERT IGNORE 및 UPDATE IGNORE의 경우 ‘0000-00–00’이 허용되며 삽입 시 경고가 발생합니다. 
NO_ZERO_DATE는 MySQL 8.0에서 더 이상 사용되지 않습니다.  NO_ZERO_DATE는 엄격 모드의 일부가 아니며 엄격 모드와 함께 사용해야 하며 기본적으로 활성화되어 있습니다. 
엄격 모드를 활성화하지 않고 NO_ZERO_DATE를 활성화하거나 그 반대의 경우에도 경고가 발생합니다.
ERROR_FOR_DIVISION_BY_ZERO 
0으로 나누기 처리에 영향을 주는 MOD(N,0)를 포함합니다.  데이터 변경(INSERT, UPDATE)의 경우 엄격한 SQL 모드가 활성화되었는지 여부에 따라 영향이 달라집니다. 
이 모드가 비활성화된 경우 0으로 나누면 NULL 값이 삽입되고 경고가 발생하지 않습니다. 
이 모드가 활성화된 경우 0으로 나누면 NULL 값이 삽입되고 경고가 발생합니다. 
이 모드가 엄격 모드와 함께 활성화되면 IGNORE가 제공되지 않는 한 0으로 나누기가 오류를 생성합니다. 
INSERT IGNORE 및 UPDATE IGNORE의 경우 NULL 값이 입력되며 0으로 나누기 삽입 시 경고가 발생합니다. 
SELECT의 경우 0으로 나누면 NULL이 반환됩니다. 
ERROR_FOR_DIVISION_BY_ZERO가 활성화되면 엄격 모드의 활성화 여부에 관계없이 경고가 발생합니다. 
MySQL 8.0에서 ERROR_FOR_DIVISION_BY_ZERO는 더 이상 사용되지 않습니다.
ERROR_FOR_DIVISION_BY_ZERO는 엄격 모드의 일부가 아니며 엄격 모드와 함께 사용해야 하며 기본적으로 활성화되어 있습니다.
엄격 모드를 활성화하지 않고 ERROR_FOR_DIVISION_BY_ZERO를 활성화하고 그 반대의 경우도 경고를 내보냅니다.
NO_ENGINE_SUBSTITUITION 
컴파일되지 않은 스토리지 엔진을 지정할 때 CREATE TABLE 또는 ALTER TABLE과 같은 명령문을 비활성화할지 또는 기본 스토리지 엔진으로 자동 폴백할지 여부를 제어합니다. 
기본적으로 NO_ENGINE_SUBSTITUTION이 활성화되어 있습니다.
런타임에 스토리지 엔진을 연결할 수 있으므로 사용할 수 없는 엔진은 다음과 같은 방식으로 처리됩니다.
NO_ENGINE_SUBSTITUTION이 비활성화된 경우 기본 엔진이 CREATE TABLE에 사용되며 원하는 엔진을 사용할 수 없는 경우 경고가 생성됩니다.  ALTER TABLE의 경우 경고가 발생하고 테이블이 변경되지 않습니다. 
NO_ENGINE_SUBSTITUTION이 활성화되면 원하는 엔진을 사용할 수 없고 테이블이 생성되거나 수정되지 않으면 오류가 발생합니다.