ném mysqldump: Bảng không xác định 'COLUMN_STATISTICS' trong information_schema (1109)


118

Mỗi lần tôi cố gắng thực hiện, mysqldumptôi nhận được một lỗi sau:

$> 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)

Kết quả là một bãi chứa không hoàn thành. Điều kỳ lạ là cùng một lệnh, được thực thi từ một máy chủ khác, hoạt động mà không đưa ra bất kỳ lỗi nào. Có ai đó đã trải qua vấn đề tương tự?

Tôi đang sử dụng mysql-client 8.0và cố gắng truy cập 5-7máy chủ mysql - có lẽ đó là lý do?

Câu trả lời:


169

Điều này là do một cờ mới được bật theo mặc định trong mysqldump 8. Bạn có thể vô hiệu hóa nó bằng cách thêm --column-stats = 0. Lệnh sẽ là một cái gì đó như:

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

Kiểm tra liên kết này để biết thêm thông tin. Để tắt thống kê cột theo mặc định, bạn có thể thêm

[mysqldump]
column-statistics=0

đến một tệp cấu hình MySQL, chẳng hạn như /etc/my.cnf hoặc ~ / .my.cnf.


--database <tên cơ sở dữ liệu> cho một cơ sở dữ liệu cụ thể
Mohhamad Hasham

@forthrin Trả lời chỉnh sửa để hiển thị cách thay đổi vĩnh viễn.
Andrew Schulman

2
Ngoài ra còn có một cài đặt trong MySQL Workbench: Trong "Tùy chọn nâng cao ...", trong phần "khác", có một thống kê cột được đặt thành "TRUE". Thay đổi này thành 0 như đề xuất để vô hiệu hóa.
Alex Barker

6
MySQLWorkbench v8.0.14 không có cài đặt đó. Những gì tôi đã làm (trên máy Mac) là tải xuống phiên bản cũ hơn của MySQLWorkbench, mở gói đó (Hiển thị nội dung Gói) và lấy ra phiên bản 'mysqldump' được đóng gói của nó. Sau đó tôi đã chỉnh sửa tùy chọn MySQLWorkbench để xem phiên bản 'mysqldump' này thay vì phiên bản của nó. Xuất hoạt động tốt mà không phải đặt bất kỳ cờ. ref) bug.mysql.com/orms.php?id=91640#c484427
Scott

1
Đối với bất kỳ ai sử dụng DataGrip, bạn có thể nhấp chuột phải vào lược đồ trong cửa sổ Cơ sở dữ liệu, đi đến "Kết xuất với 'mysqldump'" và thêm --column-statistics=0đối số vào danh sách đối số được tạo trong hộp ở dưới cùng của cửa sổ bật lên.
Travesty3

27

Đối với những người sử dụng MySQL Workbench, có một nút "Tùy chọn nâng cao" trên màn hình Xuất dữ liệu. Tùy chọn "Sử dụng thống kê cột" có thể được tắt bằng cách đặt thành 0.

Tôi chưa xác nhận, nhưng thông tin sau đây cũng được đề xuất là đúng: Trong phiên bản 8.0.14, nó bị thiếu. Trong phiên bản 8.0.16, nó làm điều này theo mặc định.


7
Chỉ có MySQL Workbench phiên bản 8.0.13 và sau đó có tùy chọn này để vô hiệu hóa "Sử dụng số liệu thống kê cột".
Paul Đặng

7
MySQL Workbench phiên bản 8.0.14 không có tùy chọn này. Hình như họ đã lấy nó ra.
Trưởng khoa hoặc

3
Thật vậy, bugs.mysql.com/bug.php?id=94294 , nên trở về 8.0.16 ...
Jean-Christophe Meillaud

vẫn xảy ra lúc 8.0.16
Amir Bar

Tôi có thể xác nhận rằng MySQLWorkbench v8.0.17 đã khắc phục sự cố (MacOs). Nó đã ném lỗi này trên MySQLWorkbench v8.0.12 và được nâng cấp. Tôi nhận thấy nó không cảnh báo tôi về việc xuất dữ liệu từ 5.X DB nữa và tự động nối thêm --column-statistics=0lệnh xuất.
Elte156

20

Tôi đã dành cả ngày để tìm kiếm một giải pháp, và hát lên đây chỉ để chia sẻ của tôi.

Có, có lẽ lỗi này là do sự khác biệt phiên bản.

Chỉ cần tải xuống Lưu trữ ZIP của MySQL 5.7 từ đây: https://dev.mysql.com/doads/mysql/ và giải nén nó, sau đó sử dụng tệp mysqldump.exe từ đó.

Nếu bạn đang sử dụng MySQL Workbench, bạn sẽ cần đặt đường dẫn đến Công cụ mysqldump mà bạn đã tải xuống bằng cách đi tới Chỉnh sửa -> Tùy chọn -> Quản trị (từ ngăn bên trái).

Hi vọng điêu nay co ich.


3
Đối với người dùng Windows, .exe này được đặt tại:C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe
Jason

1
MySQLWorkbench v8.0.16 vẫn thiếu tùy chọn để đặt cờ thống kê cột. Giải pháp này được cho là câu trả lời tốt nhất vì nó cho phép kết hợp đúng các phiên bản MySQL trong trường hợp có vấn đề trong tương lai.
Kiksy

5

Để làm cho câu trả lời này dễ dàng hơn, bạn có thể đổi tên mysqldump, tạo tập lệnh shell ở vị trí của nó và gọi tên được đổi tên mysqldumpbằng --column-statistics=0đối số. Ví dụ:

Đổi tên mysqldump:

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

Lưu tập lệnh shell sau vào vị trí của nó:

#!/bin/sh

_mysqldump --column-statistics=0 $@

1
Đây là một gợi ý tuyệt vời và hoạt động trong MacOSX với Mysql Workbench, tuy nhiên bạn phải bao gồm đường dẫn đầy đủ để thực thi mysqldump thực sự của mình hoặc nó dường như không hoạt động. Tôi đã thử ./ nhưng vẫn không hoạt động. Đưa vào đường dẫn đầy đủ và Workbench đã có thể chạy nó với các số liệu thống kê được gắn cờ.
Andy D

4

Công việc dễ nhất xung quanh

Khi sử dụng Mysql Workbench 8.0

  • Mở tab "Xuất dữ liệu"
  • Nhấp vào Tùy chọn nâng cao nhập mô tả hình ảnh ở đây
  • Trong tiêu đề Khác, đặt thống kê cột thành 0 nhập mô tả hình ảnh ở đây
  • Xuất lạinhập mô tả hình ảnh ở đây

May mắn nhất!


5
Tôi không có tùy chọn này trong phần "Khác"
JoRouss

@JoRouss Tải xuống 8.0.13 lượt tải xuống.mysql.com / archives / workbench có thể phiên bản .16 sẽ có lại! Mặt khác, chúng tôi sử dụng dòng lệnh :-)
François Breton

Tôi đã kết thúc bằng cách sử dụng đề xuất @DodiX. Cảm ơn @Francois!
JoRouss

Cách giải quyết ngu ngốc cho đến khi hết 8.0.16: trong tùy chọn Nâng cao kiểm tra "lực lượng" để lỗi sẽ bị bỏ qua. Tất nhiên, điều này sẽ bỏ qua bất kỳ lỗi nào khác
Bostone

@Bostone, giải pháp này không có lỗi.
Casper


0

Trong tình huống của tôi, tôi đang sử dụng hệ điều hành mac. Nhân tiện, có [mysqldump] column-statistics=0các trường trong my.cnftệp được đặt dưới /usr/local/etcthư mục. Xóa trường đó đã khắc phục sự cố. (không phải: phiên bản mysql là 5.7 và được cài đặt qua homebrew).


0

Tôi cũng gặp vấn đề tương tự, nó xảy ra khi tôi hợp nhất nhiều bảng dữ liệu vào lược đồ hiện có từ lược đồ khác và xuất dữ liệu đã hợp nhất sang tệp script chứa. Tôi đã cố gắng thay đổi cột-thống kê = 0, nhưng kết quả đã theo sau,

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

Vì vậy, tôi đã không giúp đỡ. Tôi phân tích nhật ký MySQL tôi thấy rằng

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.

nó phàn nàn về kích thước của innodb_buffer_pool_size. Tôi đã làm cho nó đến 24MB. Sau đó, nó hoạt động.


0

Tôi sử dụng XAMPP và MySQL Workbench cảnh báo về một phiên bản không khớp. Tôi đặt MySQL Workbench để trỏ đến mysql.exe và mysqldump.exe của XAMPP.

Chuyển đến Chỉnh sửa -> Tùy chọn -> Quản trị và đặt đường dẫn cho từng mục.

Điều này hoạt động ít nhất cho phiên bản 8.0,14. Vì vậy, đối với những người khác, bạn có thể muốn tránh sử dụng phiên bản đi kèm của mysql và mysqldump.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.