mysqldump throws : information_schema의 알 수없는 테이블 'COLUMN_STATISTICS'(1109)


118

내가 만들려고 할 때마다 mysqldump다음과 같은 오류가 발생합니다.

$> mysqldump --single-transaction --host host -u user -p db > db.sql
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 = 'Absence';':
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)

결과는 완료되지 않은 덤프입니다. 이상한 점은 다른 호스트에서 실행 된 동일한 명령이 오류없이 발생한다는 것입니다. 누군가 같은 문제가 발생 했습니까?

mysql-client 8.0를 사용하고 있으며 mysql 5-7서버 에 액세스하려고합니다. 아마도 그 이유입니까?

답변:


169

이것은 mysqldump 8에서 기본적으로 활성화 된 새로운 플래그 때문입니다. --column-statistics = 0을 추가하여 비활성화 할 수 있습니다. 명령은 다음과 같습니다.

mysqldump --column-statistics=0 --host=<server> --user=<user> --password=<password> 

자세한 내용은 이 링크 를 확인 하십시오. 기본적으로 열 통계를 비활성화하려면 다음을 추가하면됩니다.

[mysqldump]
column-statistics=0

/etc/my.cnf 또는 ~ / .my.cnf와 같은 MySQL 구성 파일로


특정 데이터베이스를위한 --databases <데이터베이스 이름>
Mohhamad Hasham

@forthrin 답변을 수정하여 영구적으로 변경하는 방법을 보여줍니다.
Andrew Schulman

2
MySQL Workbench의 설정도 있습니다 : "Advanced Options ..."의 "other"섹션에 "TRUE"로 설정된 열 통계가 있습니다. 비활성화 제안으로 이것을 0으로 변경하십시오.
Alex Barker

6
MySQLWorkbench v8.0.14에는 해당 설정이 없습니다. 내가 한 일 (Mac에서)은 이전 버전의 MySQLWorkbench를 다운로드하고 해당 패키지 (Show Package contents)를 열고 번들 버전 'mysqldump'를 꺼내 었습니다. 그런 다음 MySQLWorkbench 환경 설정을 편집하여 자체 버전 대신 'mysqldump'버전을 확인했습니다. 플래그를 설정하지 않아도 내보내기가 제대로 작동합니다. ref) bugs.mysql.com/bug.php?id=91640#c484427
Scott

1
DataGrip을 사용하는 사람이라면 데이터베이스 창에서 스키마를 마우스 오른쪽 버튼으로 클릭하고 "Dump with 'mysqldump'" --column-statistics=0로 이동 한 후 팝업 창의 맨 아래 상자에있는 생성 된 인수 목록에 인수를 추가 할 수 있습니다.
Travesty3

27

MySQL Workbench를 사용하는 경우 데이터 내보내기 화면에 "고급 옵션"버튼이 있습니다. "열 통계 사용"옵션은 0으로 설정하여 비활성화 할 수 있습니다.

확인하지는 않았지만 다음 정보도 사실로 제안되었습니다. 버전 8.0.14에서는 누락되었습니다. 버전 8.0.16에서는 기본적으로이 작업을 수행합니다.


7
MySQL Workbench 버전 8.0.13 이상에서만 "열 통계 사용"을 비활성화하는이 옵션이 있습니다.
Paul Deng

7
MySQL Workbench 버전 8.0.14에는이 옵션이 없습니다. 그들이 가져간 것 같습니다.
딘 또는

3
실제로, bugs.mysql.com/bug.php?id=94294 는 8.0.16으로 돌아와야합니다.
Jean-Christophe Meillaud

8.0.16에 계속 발생
Amir Bar

MySQLWorkbench v8.0.17에서 문제가 해결되었음을 확인할 수 있습니다 (MacO). MySQLWorkbench v8.0.12 에서이 오류가 발생하여 업그레이드되었습니다. 더 이상 5.X DB에서 데이터를 내보내는 것에 대해 경고하지 않았 --column-statistics=0으며 내보내기 명령에 자동으로 추가 되었습니다.
Elte156

20

나는 하루 종일 해결책을 찾기 위해 보냈고 여기 내 노래를 나누기 위해 노래를 불렀다.

예, 아마도이 오류는 버전 차이로 인한 것입니다.

https://dev.mysql.com/downloads/mysql/ 에서 MySQL 5.7 ZIP 아카이브 를 다운로드하여 압축을 풀고 mysqldump.exe 파일을 사용하십시오.

MySQL Workbench를 사용하는 경우 왼쪽 창에서 편집-> 환경 설정-> 관리 로 이동하여 다운로드 한 mysqldump 도구의 경로를 설정해야합니다 .

도움이 되었기를 바랍니다.


3
Windows 사용자의 경우이 .exe는 다음 위치에 있습니다.C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe
Jason

1
MySQLWorkbench v8.0.16에는 여전히 열 통계 플래그를 설정하는 옵션이 없습니다. 이 솔루션은 향후 문제가 발생할 경우 MySQL 버전을 올바르게 일치시킬 수 있기 때문에 아마도 가장 좋은 대답입니다.
Kiksy

5

이 답변을 더 쉽게 하기 위해 rename mysqldump, 대신 쉘 스크립트를 작성 mysqldump하고 --column-statistics=0인수 로 이름이 바뀐 이름 을 호출 할 수 있습니다 . 예 :

mysqldump의 이름을 바꾸십시오 :

mv /usr/local/bin/mysqldump /usr/local/bin/_mysqldump

다음 쉘 스크립트를 대신 저장하십시오.

#!/bin/sh

_mysqldump --column-statistics=0 $@

1
이것은 훌륭한 제안이며 Mysql Workbench와 함께 MacOSX에서 작동하지만 실제 mysqldump 실행 파일의 전체 경로를 포함해야하거나 작동하지 않는 것 같습니다. ./ 시도했지만 여전히 작동하지 않습니다. 전체 경로를 설정하고 Workbench는 통계가 표시된 상태로 실행할 수있었습니다.
Andy D

4

가장 쉬운 작업

사용하는 경우 MySQL의 워크 벤치 8.0

  • "데이터 내보내기"탭을여십시오
  • 고급 옵션을 클릭하십시오 여기에 이미지 설명을 입력하십시오
  • 기타 표제 아래에서 열 통계를 0으로 설정하십시오. 여기에 이미지 설명을 입력하십시오
  • 다시 내보내기여기에 이미지 설명을 입력하십시오

행운을 빕니다!


5
"기타"섹션에이 옵션이 없습니다
JoRouss

@JoRouss 다운로드 8.0.13 downloads.mysql.com/archives/workbench 아마 .16 버전은 그것을 다시 가질 것이다! 다른 방법으로 우리는 커맨드 라인을 사용합니다 :-)
François Breton

@DodiX 제안을 사용했습니다. 감사합니다 @Francois!
JoRouss

8.0.16이 종료 될 때까지 어리석은 해결 방법 : 고급 옵션에서 "force"를 확인하면 오류가 무시됩니다. 물론 이것은 다른 오류를 무시할 것입니다
Bostone

@Bostone,이 솔루션은 오류를 생략하지 않습니다.
캐스퍼


0

제 상황에서는 mac-OS를 사용하고 있습니다. 그런데 파일 아래에 디렉토리 아래에있는 [mysqldump] column-statistics=0필드 가있었습니다 . 해당 필드를 삭제하면 문제가 해결되었습니다. (not : mysql 버전은 5.7이며 homebrew를 통해 설치됩니다).my.cnf/usr/local/etc


0

또한 동일한 문제가 발생했습니다. 여러 스키마에서 여러 데이터 테이블을 기존 스키마로 병합하고 병합 된 데이터를 자체 포함 된 스크립트 파일로 내보낼 때 발생합니다. column-statistics = 0을 변경하려고했지만 결과는 다음과 같습니다.

C:\xampp\mysql\bin>mysqldump --column-statistics=0 --host=loalhost --user root --passwod
mysqldump: unknown variable 'column-statistics=0'

그래서 나는 도와주지 않았다. 나는 MySQL 로그를 분석했다.

2019-01-21 11:31:30 1050 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2019-01-21 11:31:30 4176 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

innodb_buffer_pool_size의 크기에 대해 불평합니다. 24MB로 만들었습니다. 그런 다음 작동합니다.


0

XAMPP를 사용하고 MySQL Workbench는 버전 불일치에 대해 경고합니다. MySQL Workbench가 XAMPP의 mysql.exe 및 mysqldump.exe를 가리 키도록 설정했습니다.

편집-> 환경 설정-> 관리로 이동하여 각각에 대한 경로를 설정하십시오.

버전 8.0.14 이상에서 작동합니다. 따라서 다른 버전의 경우 번들 버전의 mysql 및 mysqldump를 사용하지 않는 것이 좋습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.