MySQL 8에서 열 통계를 영구적으로 비활성화하는 방법?
MySQL 8 이후로column-statisticsflag는 기본적으로 활성화됩니다.
따라서 MySQL Workbench 8.0.12로 일부 테이블을 덤프하려고 하면 다음 오류 메시지가 나타납니다.
14:50:22 Dumping db (table_name) 실행 중: mysqldump.exe --defaults-file="c:\users\appdata\local\temp\tmpvu0 mxn.cnf" --user=db_user --host=db_host --protocol=tcp --port=1337 --default-character-set=utf8 --skip-triggers "db_name" "table_name" mysqdump: 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$')'를 실행할 수 없습니다.information_schema에서 "number-of-buckets-specified").COLUMN_STATISTATS(여기서 SCHEMA_NAME = 'db_name' 및 TABLE_NAME = 'table_name'; information_schema(1109)의 알 수 없는 테이블 'COLUMN_STATISTS'
종료 코드 2 14:50:24로 작업 실패 C:\path\to\my\dump 내보내기가 1개 오류로 완료되었습니다.
MySQL(Workbench) 8에서 비활성화할 수 있는 방법이 있습니까?column-statistics영원히?
해결방법 1
성가신 해결책은 다음을 통해 손으로 해결하는 것입니다.
mysqldump --column-statistics=0 --host=...
해결방법2
- mysqdump 이름 바꾸기
- 셸 스크립트 생성(또는 윈도우즈의 배치)
- 이름이 바뀐 mysqldump 를 호출합니다.
--column-statistics=0이 스크립트 내의 인수 - 나의 똥으로 저장합니다.
해결방법 3
- MySQL 5.7 다운로드
- 추출 mysqdump
- 이 mysq 덤프를 사용합니다.
예를 들어 MySQL Workbench: Edit / Preferences.../ 관리 / mysqdump 도구로의 경로
미리 감사드립니다!
해결 방법:
- mysqldump.cmd라는 이름의 파일을 다음 내용으로 만듭니다.
@echo off
"c:\Program Files\MySQL\MySQL Workbench 8.0 CE\mysqldump.exe" %* --column-statistics=0
(내 sqdump로 경로를 바꿉니다.필요한 경우 실행)
- MySQL Workbench를 열고 Edit > Preferences > Administration으로 이동한 후 mysqldump 도구로 경로를 변경하여 mysqldump.cmd로 가리킵니다.
가장 쉬운 해결 방법
Mysql Workbench 8.0을 사용하는 경우
행운을 빌어요!
저는 8.0.16 버전을 다운받았지만, 여전히 같은 문제입니다.
데이터 내보내기 고급 옵션을 사용할 때 "통계"에 대한 옵션을 전혀 보지 못했습니다.내 .ini에 추가했습니다.
[mysqldump]
quick
max_allowed_packet = 16M
column-statistics=0
문제가 해결되지 않습니다.
구글 검색을 해봤지만 해결책을 찾을 수 없었습니다.저는 이 문제로 어려움을 겪고 있지만 적어도 저를 위한 해결책을 가진 사람은 없습니다.
마지막으로 MySQL Workbench 파일 c:\Program Files\My에서 변경했습니다.SQL\MySQL Workbench 8.0 CE\modules\wb_admin_export.py:
skip_column_statistics = True #if get_mysqldump_version() > Version(8, 0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else False
에 대해 언급했습니다.
if get_mysqldump...
이 방법이 아니라는 것을 알지만, 지금은 더 나은 해결책을 찾을 수가 없습니다.저는 적어도 이것이 이상하고 이상합니다.더 좋은 해결책이 있으면 알려주세요!
추신. 변경 후 Workbench를 다시 시작합니다.
아이디어는 이렇습니다. 각 서버 버전에는 전용 mysqldump 버전이 있습니다.이상적이지도 않고 역호환성도 분명하지 않지만 상황이 그렇습니다.MySQL Workbench는 하나의 mysqldump 바이너리만 포함할 수 있기 때문에 최신의 것을 사용합니다.MySQL 5.7 zip을 다운로드하고 거기서 mysqldump를 사용하는 방법은 많은 부작용 없이 좋은 해결책입니다.덤프 버전을 사용하는 서버에만 주의를 기울여야 합니다.
MySQL Workbench에서 해당 컬럼 stat 플래그를 자동으로 적용하려면 https://bugs.mysql.com 에서 버그 보고서를 제출하십시오.
갱신하다
한편 이 문제에 대해 버그 보고서가 생성되었습니다. https://bugs.mysql.com/bug.php?id=91640
윈도우 사용자
MySQL Workbench 8.0이 있습니다.CE와 Xampp v3.2.3을 통해 효과를 볼 수 있었습니다.
- xampp를 열고 mysql config > my.ini // add: column-statistics = 0 so:
[mysqldump]
quick
max_allowed_packet = 16M
column-statistics = 0
저장하고 닫고 xampp mysql 서버를 재부팅합니다.(혹시 모르니)
Workbench에서 : Edit > Preferences > Administration
Mysqdump 경로에 xampp의 mysqdump 경로를 입력합니다.
C:\xampp\mysql\bin\mysqldump.exe
이거 나한테 통했어요!
mysqldump(예: Linux)를 지원하는 OS를 실행하는 경우 다른 해결 방법이 있을 수 있습니다.기본 설정에서 mysqldump 바이너리의 경로를 설정하고 경로에 --column-statistics=0 인수를 포함합니다. 편집 >> 기본 설정 >> 관리 >> MysqlDump Tool의 경로입니다.
Mac 사용자:
/Applications/MySQLWorkbench.app/Contents/Resources/plugins 모든 경우에 skip_column_statistics로 파일 wb_admin_export.py 업데이트.
skip_column_statistics = True # if get_mysqldump_version() > Version(8, 0, 2) and self.owner.ctrl_be.target_version < Version(8, 0, 0) else False
Mysql-workbench 버전 8.0.14부터는 열 통계를 비활성화하는 옵션이 없습니다.그러나 delete-master-logs를 활성화하여 실행할 수 있는 옵션이 있습니다. https://stackoverflow.com/a/64855306/10747412
Mysql Workbench 8.0.16의 마지막 버전을 다운로드하면 더 이상 문제가 없습니다.
https://dev.mysql.com/downloads/workbench/
확인할 옵션이 없습니다!
MySQL Workbench Preferences를 열고 xampp/mysql 서버 경로에 따라 Path to mysqldump Tool을 선택합니다.
MySQL Workbench Edit > Preferences > Administration
C:\xampp\mysql\bin\mysqldump.exe
바로 그겁니다.
저는 우분투 16.04, MySql Workbench 6.3.6, MySql 8.0.25, MySql Dump 8.0.25를 사용하고 있습니다.
제 해결책은 다음과 같습니다.
- /usr/lib/mysql-workbench/modules/wb_admin_export.py를 엽니다.
- 교체하다
s = re.match(".*Distrib ([\d.a-z]+).*", output)
와 함께
s = re.match(".*mysqldump Ver ([\d.]+).*", output)
- 교체하다
cmd = subprocess.list2cmdline(args)
와 함께
args.append("--column-statistics=0")
cmd = subprocess.list2cmdline(args)
리눅스 사용자
윈도우의 위의 다른 답변과 같은 생각으로, 여기에 리눅스의 mysql 설정을 당신이 쓸 필요가 없도록 전세계적으로 바꾸는 방법이 있습니다.mysqldump --column-statistics=0더이상.
mysqdump에서 Server Fault Stack Exchange의 인용문: information_schema(1109)에서 알 수 없는 표 'COLUMN_STATISTIS'가 높은 지지를 받았습니다.
기본적으로 열 통계를 비활성화하려면 다음을 추가할 수 있습니다.
[mysqldump] column-statistics=0MySQL 구성 파일에 저장합니다.에 가다
/etc/my.cnf,~/.my.cnf, 으로/etc/mysql/mysql.cnf.
저는 에서을 추천합니다./etc/mysql/mysql.cnf.
MySQL Workbench config 했습니다를 하였습니다.wb_admin_export.py.
제 대답을 여기서 보세요.
[![추가 명령과 함께 DBEAVER에서 내보내기][1][1]]
저는 명령어를 하나 더 추가했을 뿐인데 효과가 있었습니다. [1]: https://i.stack.imgur.com/9iBvO.png
언급URL : https://stackoverflow.com/questions/51614140/how-to-disable-column-statistics-in-mysql-8-permanently
'programing' 카테고리의 다른 글
| sql join 같은 테이블에 행 2개를 연결합니다. (0) | 2023.09.26 |
|---|---|
| Lodash 타이틀 케이스 (모든 단어의 대문자 첫 글자) (0) | 2023.09.26 |
| 경량 C 코드 샌드박스를 만드는 방법은? (0) | 2023.09.26 |
| 우커머스 서브스크립션에서 다음 결제일을 설정하는 방법은? (0) | 2023.09.26 |
| A2부터 무한대까지 지정(NO VBA) (0) | 2023.09.26 |
