[MySql / MariaDB] 바이너리 용량 설정하기

[MySql / MariaDB] 바이너리 용량 설정하기

 

 

  1. 바이너리 타입 변경하기

바이너리 종류

 DB의 저장 방식 중 하나인 바이너리는 종류가 여러 개가 있습니다.

그중,  서버와 요즘 사람들이 자주 사용하는 사진의 용량을 예상하여 크기를 정하는 방법입니다.

 

 

■ 자주 사용하는 바이너리 용량

이름 용량
TINYBLOB 256Byte
BLOB 64KB
MEDIUMBLOB 8MB
LONGBLOB 4GB

만약 BLOB를 설정하였다면, 사용자들은 64KB 이상의 데이터를 넣을 수 없게 됩니다.

그러므로 바이너리 타입을 변경하여 용량을 바꾸는 방법이 되겠습니다.

 

 

 

  2. DataBase의 저장될 용량 크기 변경

max_allowed_packet

 1번 방식을 했지만 저장이 안 되었다면, log 혹은 sql error에서 max_allowed_packet Error가 나오는지 확인해보셔야 합니다.

혹은, Error가 안 나오더라도 의심대상입니다.

 

 

■ 해결 방법

1. max_allowed_packet 용량 확인하기

max_allwoed_packet의 기본값은 2048이다.

 


  
SHOW variables like 'max_all%';

이미지를 저장할 Dadabase 안의 variables를 확인하는 방법입니다.

 

이 중, max_allowed_packet를 찾으면 됩니다.

문제는 생각보다 많기 때문에 스크롤을 올리거나 내려야 하는 불편함이 있기에, 조건값(like)을 추가해줍니다.

 

이를 통해 like의 조건 값인 '시작 값 max'를 모두 찾게 됩니다.

 

여기서 가장 눈 여겨봐야 할 부분은 max_allowed_packet가 2048로 되어있다는 부분입니다.

만약, 이렇게 되어있다면 아무리 Table에서 바이너리를 높게 설정했어도 지금은 약 2Byte부터는 DataBase에서 거절하게 됩니다.

 

따라서 이를 수정할 필요가 있습니다.

 

 

2. max_allowed_packet 용량 변경하기


  
set global max_allowed_packet = 16777216;

위 용량은 1024 x 1024 x 16 했을 때의 결괏값입니다. 약 16MB입니다.

용량은 사용하는 database의 table 중에서 바이너리 최댓값으로 설정하시면 됩니다.

 

 

3. 해당 db를 재부팅하기

DB를 재부팅합니다.리눅스를 사용할 경우에는 아래와 같은 명령어를 사용합니다.


  
systemctl restart mysqld

변경이 제대로 된 모습

DB만 껐다가 다시 키게 되었을 경우, 다시 2-1의 MAX_ALLOWED_PACKET를 확인합니다.변경이 되었다면 다시 한번 도전을 해봅니다.

 

 

 

  마무리

 이 부분에 대해 ERROR도 발생되지 않으면 삽질하기 좋은 부분입니다.

그러므로 이런 현상도 있다는 것을 기억한다면 다음에 삽질할 시간을 조금이라도 줄일 수 있다고 생각됩니다.

반응형

'Computer > DB' 카테고리의 다른 글

[MariaDB] DB 복구하기  (0) 2022.05.19
[CentOS] MariaDB 설정하기  (0) 2022.04.20
[MariaDB] mysqldump가 실행이 안 되는 경우  (0) 2021.10.07
[MariaDB] 대, 소문자 구분 없애기  (0) 2021.10.06
[MySQL||MariaDB] 1093 Error 발생시  (0) 2021.06.07

댓글

Designed by JB FACTORY