콘텐츠로 건너뛰기

[ 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

    모두 해결되셨나요?

    태그: