mariaDB 수정을 위해 php기반인 phpmyadmin 을 사용하다 보면 위와 같은 경고를 볼 때가 있습니다.
경고 : 현재 페이지의 폼 필드는 1000가 넘습니다. 폼이 전송될 때 PHP의 max_input_vars 설정에 의해 일부 필드가 손실될 수 있습니다. |
이 문장에 우리 같은 초짜 서버 관리자에게 있어 무서운 단어가 다 들어가 있습니다.
일단 손발을 얼려버리는 “경고“라는 마법의 단어와 머리속을 하얗게 만드는 “손실”이라는 끔찍한 단어가 조합된 무시무시한 문장입니다.
phpmyadmin 에서 뜨는 이 오류, 우리는 어떻게 대처해야 할까요?
이 글의 목차
폼 필드 1000개 오류, 내 DB는 안전한가?
폼 필드 1000개 오류는 왜 뜨는것이죠?
보통 nginx나 아파치를 사용하는 php기반 서버에서는 폼 전송을 할 때 input 요청값에 갯수 제한이 걸려있습니다. 이 제한 값 이상의 요청이 발생하였을 경우 위와 같은 경고를 하게 되는 것입니다.
phpmyadmin의 경우는 테이블의 내용을 보려고 시도할 때
[테이블의 열 수] x [표시된 행 수] 의 값이 1000개를 넘길 경우 이 경고가 발생합니다.
DB 데이터가 정말로 손실 되는 건가요?
phpmyadmin에서 단순히 DB를 조회 하는 행위만으로는 실제 DB의 손실로 이어지지 않습니다. 조회할 때 뜨는 저 오류는 단순히 DB의 내용을 불러 오는데 완벽하지 않을 수 있다고 경고하는 의미이지 실제 데이터가 손실 된다는 의미는 아닙니다.
다시 정리하면 데이터 자체는 안전합니다. 영향을 받는 유일한 것은 PHP의 검색 및 출력 기능입니다.
제한값 보다 실제 필드값이 크면?
제한값인 1000개 보다 필드값이 더 크다면 1000개 까지 밖에 안 보이는 것 아닌가 하는 의문이 들 수 있습니다. 실제 필드 값이 많은데 제한 값을 100개로 하면 어떨까요.
phpmyadmin 에서 실제 한번 해보니 검색 및 출력에 시간이 좀 더 걸릴 뿐 데이터가 정상적으로 불러와 집니다. 큰 걱정은 안 하셔도 됩니다.
max_input_vars 리미트값 php.ini 파일 수정
사실상 1000개 이상으로 데이터를 보내는 일이 흔하지 않으나 만약 이 이상의 input 값을 추가로 더 필요한 상황이라면 php.ini 파일 수정을 통해 해결해야 합니다.
보통의 php.ini 파일 위치는 설치 형태에 따라 다르긴 하지만 보통은 server/php/php.ini 에 위치 하고 있습니다.
파일을 텍스트 에디터로 열어서 중간 쯤
max_input_vars = 1000 이 값을
max_input_vars = 3000 으로 변경해 주시면 됩니다.
만약 ;max_input_vars = 1000 이렇게 ” ; “ 세미콜론 주석 처리 되어있으면 주석 해제하고 값을 변경해 주시고 검색을 해도 없다 하면 아무 곳에 max_input_vars = 3000 값을 추가해 주시면 됩니다.