์ ๋ชฉ๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ mysql์ด๋ mariadb์์ ์ด๋ค ํน์ ํ ์ด๋ธ์ ์ ์ฒด column์ ํฌ๊ธฐ๋ฅผ ํฉ์น๊ฒ mysql์ด๋ mariadb์ ์ค์ ๋ ํ ์ด๋ธ๋น ์ต๋ ํฌ๊ธฐ๋ฅผ ๋์ ์ํ๋ฅผ ์๋ฏธํ๋ค. ์ ํํ๋ Engine์ด innodb๋ก ๋ ํ ์ด๋ธ์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค. ์ด๋ด๋๋ ํด๊ฒฐ๋ฐฉ์์ด 2๊ฐ์ง๊ฐ ์๋ค.
ํด๊ฒฐ๋ฐฉ์ 1
์๋ฌ ๋ก๊ทธ์๋ ๋์์๋ ๋ฐฉ๋ฒ์ผ๋ก, varchar๋ก ์ ์ธ๋์ด์๋ ์ปฌ๋ผ๋ค ์ค์์ ํฌ๊ธฐ๊ฐ ํฐ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ TEXT๋ BLOB์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๋ ๊ฒ์ด๋ค. TEXT๋ BLOBํ์ ์ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ์ ์ฅ๋์ง ์๊ณ ๋ณ๋์ ๊ณต๊ฐ์ ๋ถ๋ฆฌ๋์ด ์ ์ฅ๋๋ค๊ณ ํ๋ค(?) ์ ํํ ๋ฌด์จ ์๋ฏธ์ธ์ง๋ ์์ง ์ ๋ชจ๋ฅด์ง๋ง.. ์ด๋ ๊ฒ ํจ์ผ๋ก์จ ํด๊ฒฐํ ์ ์๋ค.
ํด๊ฒฐ๋ฐฉ์ 2
my.cnf(my.ini) ์ค์ ์ ์์ ํด์ค๋ค.
[mysqld]
์๋์ innodb์ ๋ํ ์ค์ ์ด ์์๊ฒ์ด๋ค. ์ด ์๋์ ๋ค์๊ณผ ๊ฐ์ ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
[mysqld]
innodb_strict_mode = 0
์๋ง innodb์ ์ต๋ ํฌ๊ธฐ๋ฅผ ์ก์๊บผ๋ ๋ง๊บผ๋ ๋ง๊ณ ๋ ๋ค๋ฅธ ์ํฅ์ด ์๊ฒ ์ง๋ง ์ผ๋จ ์ ๋ ๊ฒ ์ค์ ํจ์ผ๋ก์จ๋ ํด๊ฒฐํ ์ ์๋ค.
โป ์ฐธ๊ณ ๋ก ์๋์ฐ๋ ์ค์ ํ์ผ๋ช ์ด my.ini์ด๊ณ ๋ฆฌ๋ ์ค์ ์ค์น๋ ๊ฒฝ์ฐ์๋ my.cnf๋ก ๋์ด์์๊ฒ์ด๋ค. ๋ฆฌ๋ ์ค์ ๊ฒฝ์ฐ์๋ ์๋ง /etc/mysql ๋๋ ํ ๋ฆฌ ์์ my.cnf๊ฐ ์กด์ฌํ ๊ฒ์ด๊ณ ์๋์ฐ๋ mysql ์ ์ํ ํ์ ์๋์ ๋ช ๋ ์ด๋ฅผ ํตํด datadir์ ๊ฒฝ๋ก์ ๊ฐ๋ฉด ๋์ฌ๊ฒ์ด๋ค.
SHOW VARIABLES WHERE Variable_Name LIKE '%dir';
ํด๊ฒฐ๋ฐฉ์ 3 * (2022. 3. 4. ์ถ๊ฐ)
์ค์ ํ์ผ์ ๊ฑด๋๋ฆด ์ ์๋ ํ๊ฒฝ์ธ ๊ฒฝ์ฐ ์ฐ๊ฒฐ๋ connection session ์์์ ์ค์ ํ ์๋ ์๋ค. session์ด๋ผ๋ ๊ฐ๋ ์ด ์ด์ํ ์๋ ์๋๋ฐ ๊ฐ๋จํ๊ฒ ๋งํด์ ํ์ฌ ์ฐ๊ฒฐ์ค์ธ connection์์๋ง ์ ์ง๋๋ ์ค์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํ ์ ์๋ค.
-- ์ค์ ๋ฐฉ๋ฒ (set innodb_strict_mode)
SET innodb_strict_mode = 0;
-- ํ์ธ ๋ฐฉ๋ฒ (check innodb_strict_mode)
SHOW variables = 'innodb_strict_mode';
or
SHOW variables like '%strict_mode';
์ฃผ์์ฌํญ
innodb_strict_mode๋ฅผ 0์ผ๋ก ์ค์ ํ๋ค๋ ๊ฒ์ innodb ์คํ ๋ฆฌ์ง ์์ง์ ๋ํ ์๊ฒฉํ ๊ฒ์ฆ์ ๋นํ์ฑํ(OFF)ํ๋ค๋ ๊ฒ์ด๊ณ ์ด๋ก ์ธํด์ ์๋๋ innodb์ ๋ง๋ค์ด์ง ์ ์๋ ํ ์ด๋ธ ๋๋ ๋ค์ด๊ฐ ์ ์๋ ๊ธธ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ ์ ์๊ฒ ๋๋๋ฐ ์ ์ฌ์ ์ธ ์ํ์ด ์๋ค.
Row size too large ๋ผ๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ณด๋ฉด row ํฌ๊ธฐ๊ฐ ๋๋ฌด ํฌ๋ค๋ ๊ฒ์ธ๋ฐ ์ด๋ฅผ ์ต์ง๋ก ๋ฃ๊ฒ๋๋ฉด ๋ฐ์ดํฐ๋ ์งค๋ ค์ ๋ค์ด๊ฐ๋ค. ์ด ๋๋ฌธ์ ํ ์ด๋ธ์ ๋ง๋ค์ด๋๊ณ ๋์ค์ ๋ฐ์ดํฐ๊ฐ ์งค๋ ค์ ๋ค์ด๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์๋ ์๋ค. ๋๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์๋๋ฐ ํด๋น ๋ฐ์ดํฐ๊ฐ ์งค๋ ค์ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์กฐํ๊ฐ ์๋ ์๋ ์๋ค. ์ด๋ฟ๋ง ์๋๋ผ unsigned int ๋ฐ์ดํฐ ํ์ ์ธ๋ฐ -1์ ๋ฑ๋กํ ๊ฒฝ์ฐ ์์์ 0์ผ๋ก ๋ฐ๊ฟ์ ๋ฑ๋ก๋๋ค. ์ด๋ ๊ฒ ๋ฑ๋ก๋ ๊ฒฝ์ฐ ๋์ค์ ์ด๋ค ์๋ฌ๋ ์ค๋ฅ๋ก ๋์์ฌ์ง ๋ชจ๋ฅธ๋ค.
๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ๋ฐฉ์
์ด์ ๋ํ ํด๊ฒฐ๋ฐฉ์์ ํด๋น ํ ์ด๋ธ์ ์ฌ์ค๊ณํ๋๊ฒ์ด๋ค. ์๋ฌ ๋ฉ์์ง์ ๋์์๋ ๋๋ก ๋ช๋ช ์ปฌ๋ผ์ text ๋ blob ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ฐ๊ฟ์ ํด๊ฒฐํ ์๋ ์์ง๋ง ๊ทผ๋ณธ์ ์ธ ํด๊ฒฐ์ฑ ์ ์๋๋ค. text๋ blob์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ inline์ ์ ์ฅํ์ง ์๊ณ ํ์ผ๋ก ์ ์ฅํ๊ฒ ๋ค๋ ๊ฒ์ธ๋ฐ ์ปฌ๋ผ์ด 500๊ฐ์ธ ํ ์ด๋ธ์ด ์๋ค๊ณ ๊ฐ์ ํ์ ๋ ๋ช ๋ฐฑ๊ฐ์ ์ปฌ๋ผ์ text๋ก ๋ฐ๊ฟ์ ํ์ผ๋ก ์ ์ฅํ๊ฒ ๋๋ฉด ํ ์ด๋ธ์ ์์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฑ๋กํ๋ ๊ฒ์๋ ๋ฌธ์ ๊ฐ ์์์ง ๋ชฐ๋ผ๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ด ์๋์ฌ ์๋ ์๊ณ ํ์ผ๋ก ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ด๋ค ์ด์๊ฐ ์๊ธธ์ง๋ ๋ถํฌ๋ช ํ๊ณ ์ธ๋ฑ์ฑ์ ํ๊ณ ์๋ค๋ฉด ์ธ๋ฑ์ฑ ์๊ฐ์ด ์์ฒญ ์ค๋ ๊ฑธ๋ฆด์ง๋ ๋ชจ๋ฅธ๋ค. ์ ์ฌ์ ์ธ ์ํ ์์๊ฐ ๋ง์์ง๊ธฐ ๋๋ฌธ์ ์๋น์ค ์์ ์ฑ์ ์ํด์๋ผ๋ ํด๋น ํ ์ด๋ธ์ ์ฌ์ค๊ณํ๋ ๊ฒ์ด ๋ง๋ค๊ณ ์๊ฐํ๋ค.
์๋ฅผ๋ค์ด, ์ฌ์ค๊ณ๋ ์ปฌ๋ผ์ด ๋ง์ ๊ฒฝ์ฐ ํ ์ด๋ธ์ ์ ์ ํ ๋ถ๋ฆฌํ์ฌ ๊ทผ๋ณธ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํ๋ค.