티스토리 뷰

MySQL

mysql max_allowed_packet 에러

猫猫 2019. 9. 3. 09:57
반응형

전송패킷보다 큰 데이터를 전송하려하면 에러가 난다. 

 

use sqldb;
create table maxtbl( col1 longtext, col2 longtext);
insert into maxtbl values(repeat('a',1000000), repeat('가',1000000));
select length(col1), length(col2) from maxtbl; -- 한글은 2byte 사용하니까 영어의 2배
insert into maxtbl values(repeat('A',10000000), repeat('가',10000000)); -- 용량때문에 에러 my.ini건드려줘야함
select length(col1), length(col2) from maxtbl;

위의 insert는 실행이 되지만

아래의 insert는 max_allowed 에러를 띄운다. 

전송패킷이 1M 인가? 로 설정되어있음

 

학원에선 my.ini를 건드리라 하셨는데.. 이거 잘못건드렸다 지금 30명중 29명이 워크벤치 실행이 안된다 ㄷㄷ

 

차라리 워크벤치-> server->options file->Networking-> max_allowed_packet을 건드리는것이.. 안전..

밑에 보면 설치 폴더의 my.ini 파일을 건드린다 되어있다. 

 

나같이 c:가 아니라 d:에 설치했으면 d:의 my.ini를 건드리셨어야 ㅎ... 그것도 모르고  C에서 으마무시하게 저장하고

외않되 시전중.. 

 

max_allowed_packet은 mysqld, mysql, client 세 개 모두 건드려야 하기 때문에 아래 쪽에 있는 드롭박스로 세개 모두 선택해서 모두 최대값인 1000M로 바꿔주자

 

 

다시 server의 startup/shutdown에 들어가서 셧다운 함 하고 스타트 해주면 정상 적용 된다. 

 

근데 이건 어디까지나 gui 환경에서 가능한 것이고.. 

터미널로 하려면 설치폴더->my.ini를 건드려야 한다는 점.

그리고 my.ini 잘못건드리면 큰일나니까 my.ini는 백업을 꼭 하고 해야 한다는 점. 

 

참고 : https://stackoverflow.com/questions/8062496/how-to-change-max-allowed-packet-size

반응형

'MySQL' 카테고리의 다른 글

190906 while 구구단 프로시저  (0) 2019.09.09
190830 mysql in, out 프로시저  (0) 2019.09.09
190830 기본 명령문 예제  (0) 2019.08.30
190829 기본 명령문 예제  (0) 2019.08.30
190829 DB insert into 기본  (0) 2019.08.30