[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