ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [MySQL] Unknown table 'COLUMN_STATISTICS' in information_schema (1109) 에러
    💻 프로그래밍/DB 2020. 7. 12. 23:22

    안녕하세요! 운동하는 개발자 제이입니다. 

    오늘은 mysqldump 할 때, 생기는 에러에 대해서 알아보려고 해요! 

     

    최근에 DB 덤프를 해야 하는 일이 있었는데, 갑자기 오류가 나더니 안되는 거예요?!

    (사실 mysql관련 brew 업데이트를 어떤 작업 중에 하게 됐어요ㅠㅠ)

    mysqldump -u[user] -p  -h[호스트] [데이터베이스] [테이블명] > [저장할 이름].sql

    이렇게 mysqldump 명령어를 실행하니까,

     

    mysqldump: Couldn’t execute ‘SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, ‘$.“number-of-buckets-specified”’)                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = ‘DB 이름’ AND TABLE_NAME = ‘테이블 이름‘;’: Unknown table ‘COLUMN_STATISTICS’ in information_schema (1109)

    일단 COLUMN_STATISTICS라는 테이블을 알 수 없다는데, 여기에 힌트가 있을 것 같아 구글링 해봤습니다.

     

    MySQL 8.0 레퍼런스 문서 Performance Options

    MySQL 공식 문서를 찾아보니, 8.0부터 새로 추가된 옵션 때문에 나는 에러이더라고요. 해당 옵션이 활성화되어있으면 덤프 할 때 ANALYZE TABLE에 히스토리를 생성(?) 하는 것 같아요.

    근데, 옵션은 1(on)로 되어있는 데 사용해야 할 테이블이 없어서 나는 오류입니다. 해결하는 방법은 두 가지가 있는데,

     

    📌 column-statistics=0으로 주고 mysqldump 실행

    mysqldump --column-statistics=0 -u[user] -p  -h[호스트] [데이터베이스] [테이블명] > [저장할 이름].sql

     

    📌 config 파일에 default값 세팅

    [mysqldump]
    column-statistics=0

    /etc/my.cnf 또는 ~ / .my.cnf 같은 파일에 위 설정을 추가하는 것입니다.

     

    저는 두 번째 방법으로 하려다가, 잘 안돼서 첫 번째 방법으로 하니까 잘 dump 되었습니다.

    자세한 내용은 column statistics 관련 문서에서 확인해보세요~😄

    그럼 오늘 하루도 즐거운 코딩 하시길 바래요!!🧑‍💻

    '💻 프로그래밍 > DB' 카테고리의 다른 글

    Redis 고가용성으로 사용하기 with Sentinel  (0) 2022.01.02

    댓글

운동하는 개발자 JAY-JI