[MySql / MariaDB] 바이너리 용량 설정하기
- Computer/DB
- 2022. 1. 18.
[MySql / MariaDB] 바이너리 용량 설정하기
1. 바이너리 타입 변경하기
DB의 저장 방식 중 하나인 바이너리는 종류가 여러 개가 있습니다.
그중, 서버와 요즘 사람들이 자주 사용하는 사진의 용량을 예상하여 크기를 정하는 방법입니다.
■ 자주 사용하는 바이너리 용량
이름 | 용량 |
TINYBLOB | 256Byte |
BLOB | 64KB |
MEDIUMBLOB | 8MB |
LONGBLOB | 4GB |
만약 BLOB를 설정하였다면, 사용자들은 64KB 이상의 데이터를 넣을 수 없게 됩니다.
그러므로 바이너리 타입을 변경하여 용량을 바꾸는 방법이 되겠습니다.
2. DataBase의 저장될 용량 크기 변경
1번 방식을 했지만 저장이 안 되었다면, log 혹은 sql error에서 max_allowed_packet Error가 나오는지 확인해보셔야 합니다.
혹은, Error가 안 나오더라도 의심대상입니다.
■ 해결 방법
1. max_allowed_packet 용량 확인하기
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 |