[ Solved ] set foreign_key_checks = on phpmyadmin

Error
Static analysis:

1 errors were found during analysis.

Missing expression. (near "ON" at position 25)
SQL query: Edit Edit

SET FOREIGN_KEY_CHECKS = ON;

MySQL said: Documentation

#2006 - MySQL server has gone away

(Korean)

이 에러는 복합적인 문제로 두가지를 동시에 확인해야합니다.

첫번째로 확인해야할 부분은 외래키 사용이 On으로 되어져있기때문에 테이블 작업시 에러가 발생하는 것입니다.

 

SET foreign_key_checks = 0;
-- run some queries
SET foreign_key_checks = 1;

 

 

당연히 Sql 시작 구문에 SET FOREIGN_KEY_CHECKS = OFF; 혹은 숫자 0을 지정하고 마지막 부분에 ON; 또는 숫자 1을 지정하면 해결됩니다.

하지만 다른 문제로 인해서 위의 문구가 발생하는 경우가 있습니다.

바로 max allowed packet 최대 허용 패킷 크기때문입니다.

 

제 경우에는 운영하는 서버환경설정의 max allowed packet 값이 1000K 으로 지정되어져있었습니다.

이것을 5000K 혹은 그 이상으로 잡아주게되면 쿼리문을 입력할때 문자열이 길어서 제약위반이 되는것을 방지 할 수 있습니다.

vi /etc/my.cnf

max_allowed_packet=5000K

 

wq! 눌러서 저장하고 나간다음 MySql (MariaDB) 재시작을 하면 됩니다.

service mariadb restart

service mysqld restart

이제 phpmyadmin 에서 확인해보면 max allowed packet 값이 5000K (5,120,000) 들어간것을 확인 할 수 있습니다.

 

그리고 다시 DB를 복원해보시면 이제는 정상적으로 해결되어 데이터가 잘 들어갈겁니다.

set foreign_key_checks = on

모두 해결되셨나요?

태그: