top

๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

IT/MySQL

MySQL max_allowed_packet



MySQL์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์•„๋ž˜ SQL์„ ์‹คํ–‰ํ•ด๋ณด์•˜๋‹ค.

INSERT INTO maxTBL VALUES ( REPEAT('A', 10000000), REPEAT('๊ฐ€', 1000000));

๋ณด๋ฉด A๋ฅผ 10,000,000(์ฒœ๋งŒ)๋ฒˆ ๋ฐ˜๋ณต์‹œํ‚จ ๋ฌธ์ž์—ด๊ณผ '๊ฐ€'๋ฅผ 1,000,000(๋ฐฑ๋งŒ)๋ฒˆ ๋ฐ˜๋ณต์‹œํ‚จ ๋ฌธ์ž์—ด์„ maxTBL ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.


Error Code: 1301. Result of repeat() was larger than max_allowed_packet


์œ„ ์˜ค๋ฅ˜์— ๋‚˜์˜ค๋Š” max_allowed_packet๊ฐ’์€ ์„œ๋ฒ„๋กœ ์งˆ์˜ํ•˜๊ฑฐ๋‚˜ ๋ฐ›๊ฒŒ๋˜๋Š” ํŒจํ‚ท์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‹œ์Šคํ…œ ๋ณ€์ˆ˜๋‹ค. ํ˜„์žฌ max_allowed_packet์€ 4194304 Byte๋กœ ์•ฝ 4MB๋กœ ์„ค์ •๋˜์–ด์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋‚ด๊ฐ€ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•˜๋ ค๋Š” REPEAT('a', 10000000)์˜ ๊ธธ์ด๋Š” ์ด 10MB ์ด๊ธฐ๋•Œ๋ฌธ์— ์ €๋Ÿฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ด๋‹ค!



max_allowed_packet์˜ ์„ค์ •๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด

SHOW VARIABLES LIKE 'max%';

์œ„ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋งจ ์œ„์— ๋‚˜ํƒ€๋‚  ๊ฒƒ์ด๋‹ค.


์ด์ œ max_allowed_packet ์˜ ์„ค์ •๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋ณด์ž. MySQL WorkBench๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  CMD๋ฅผ ๊ด€๋ฆฌ์ž๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.



cd %PROGRAMDATA%      -- PROGRAMDATA ํด๋”๋กœ ์ด๋™(์ˆจ๊น€ํด๋”์ž„)

cd mysql

cd "MySQL Server 5.7"

dir                                -- ํด๋” ์ •๋ณด๋ณด๊ธฐ

์œ„์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด my.ini ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ฉ”๋ชจ์žฅ์œผ๋กœ ์—ฐ๋‹ค.(notepad my.ini) ๋‚˜๋Š”

2018/08/05 - [MySQL] - MySQL Data ๊ฒฝ๋กœ ๋ณ€๊ฒฝ ์—์„œ MySQL์˜ ๊ฒฝ๋กœ๋ฅผ ๋ฐ”๊ฟ”๋†จ๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ€ my.iniํŒŒ์ผ์„ ์ˆ˜์ •ํ–ˆ๋‹ค. ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋กœ ๋ณ€๊ฒฝํ•œ ์ ์ด ์—†๋‹ค๋ฉด ์œ„์˜ ๊ฒฝ๋กœ์— ์žˆ์„ ๊ฒƒ์ด๋‹ค.




๋ฉ”๋ชจ์žฅ์—์„œ ๋ณด๊ธฐ > ์ƒํƒœํ‘œ์‹œ์ค„ ์„ ํด๋ฆญํ•˜๋ฉด ํ•˜๋‹จ์— ์ค„๋ฒˆํ˜ธ๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋Œ€๋žต 287์ •๋„๋กœ ๊ฐ€์ž!



๊ทธ๋Ÿฌ๋ฉด ์œ„์ฒ˜๋Ÿผ max_allowed_packet=4M ๋ผ๋Š” ์ค„์ด ๋ณด์ธ๋‹ค. ์ด์ œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํฌ๊ธฐ๋กœ ์ˆ˜์ •ํ•˜๋ฉด๋œ๋‹ค. ๋‚˜๋Š” 1G๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด max_allowed_packet=1000M์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” 1G์ด๋‹ค.

์ฐธ๊ณ  >>  https://dev.mysql.com/doc/refman/8.0/en/packet-too-large.html



๋ฉ”๋ชจ์žฅ์„ ์ €์žฅํ•˜๊ณ  ๋ˆ ๋’ค MySQL ์„œ๋น„์Šค๋ฅผ ๊ป๋‹ค๊ฐ€ ํ‚จ๋‹ค. ํƒ์ƒ‰๊ธฐ์—์„œ ์„œ๋น„์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ„๋‹จํ•˜๊ฒŒ CMD๋ช…๋ น์–ด๋กœ net stop/start mysql์„ ์ž…๋ ฅํ•˜๋ฉด๋œ๋‹ค.



๋‹ค์‹œ SQL์„ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค. show variables like 'max%'๋ฅผ ์‹คํ–‰ํ•˜๋ฉด max_allowed_packet ์„ค์ •๊ฐ’์ด ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.