mysqldump atar: information_schema'daki bilinmeyen tablo 'COLUMN_STATISTICS' (1109)


118

Yapmaya çalıştığım her sefer mysqldumpaşağıdaki hatayı alıyorum:

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

Sonuç, tamamlanmayan bir çöplük. Tuhaf olan, başka bir ana bilgisayardan yürütülen aynı komutun herhangi bir hata yapmadan çalışmasıdır. Birisi de aynı sorunu yaşadı mı?

MySQL istemcisi kullanıyorum 8.0ve bir MySQL 5-7sunucusuna erişmeye çalışıyorum - belki nedeni budur?

Yanıtlar:


169

Bu, mysqldump 8'de varsayılan olarak etkinleştirilmiş yeni bir bayraktan kaynaklanır. --Column-statistics = 0 ekleyerek bunu devre dışı bırakabilirsiniz. Komut şöyle bir şey olacak:

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

Daha fazla bilgi için bu bağlantıya göz atın . Sütun istatistiklerini varsayılan olarak devre dışı bırakmak için

[mysqldump]
column-statistics=0

/etc/my.cnf veya ~ / .my.cnf gibi bir MySQL yapılandırma dosyasına.


--databases <veritabanı adı> belirli bir veritabanı için
Mohhamad Hasham

@forthrin Cevap, değişimin nasıl kalıcı hale getirileceğini göstermek için düzenlendi.
Andrew Schulman

2
Ayrıca MySQL Tezgahında bir ayar var: "Gelişmiş Seçenekler ..." altında, "diğer" bölümünde "DOĞRU" olarak ayarlanmış bir sütun istatistikleri var. Bunu devre dışı bırakmak için önerildiği gibi sıfıra değiştirin.
Alex Barker,

6
MySQLWorkbench v8.0.14 bu ayara sahip değildir. Yaptığım şey (Mac'te) MySQLWorkbench'in eski bir sürümünü karşıdan yüklemek, bu paketi (Paket içeriğini göster) açtı ve paketlenmiş 'mysqldump' sürümünü çıkardı. Daha sonra kendi yerine 'mysqldump' sürümüne bakmak için MySQLWorkbench tercihlerini değiştirdim. Dışa aktarma, herhangi bir bayrak koymak zorunda kalmadan gayet iyi çalışır. ref) bugs.mysql.com/bug.php?id=91640#c484427
Scott

1
DataGrip kullanan herkes için, Veritabanı penceresindeki şemaya sağ tıklayabilir, "Mysqldump ile Dökümü" seçeneğine gidebilir --column-statistics=0ve açılan pencerenin altındaki kutudaki oluşturulan bağımsız değişken listesine argümanı ekleyebilirsiniz .
Travesti3

27

MySQL Tezgahını kullananlar için Veri Aktarımı ekranında "Gelişmiş Seçenekler" düğmesi vardır. "Sütun İstatistiklerini Kullan" seçeneği 0 olarak ayarlanarak devre dışı bırakılabilir.

Onaylamadım, ancak aşağıdaki bilgilerin de doğru olduğu önerildi: 8.0.14 Sürümünde eksik. 8.0.16 Sürümünde bunu varsayılan olarak yapıyor.


7
Yalnızca MySQL Workbench sürüm 8.0.13 ve sonrasında "Sütun İstatistikleri Kullan" seçeneğini devre dışı bırakmak için bu seçeneğe sahip.
Paul Deng

7
MySQL Workbench sürüm 8.0.14 bu seçeneğe sahip değildir. Dışarı çıkarmış gibi görünüyorlar.
Dean Veya


hala 8.0.16'da gerçekleşti
Amir Bar

MySQLWorkbench v8.0.17'nin sorunu (MacO'lar) çözdüğünü onaylayabilirim. Bu hatayı MySQLWorkbench v8.0.12'ye atıyor ve geliştiriyordu. Beni artık 5.X DB'den veri dışa aktarma konusunda uyarmadığını --column-statistics=0ve dışa aktarma komutuna otomatik olarak eklediğini fark ettim .
Elte156

20

Bütün günümü bir çözüm aramak için harcadım ve burada sadece benimkini paylaşmak için şarkı söyledim.

Evet, muhtemelen bu hata sürüm farklılıklarından kaynaklanmaktadır.

Sadece indirin MySQL 5.7 ZIP Arşiv buradan: https://dev.mysql.com/downloads/mysql/ ve .zip sonra oradan mysqldump.exe dosyasını kullanın.

MySQL Workbench kullanıyorsanız, indirdiğiniz mysqldump Aracına, Düzenle -> Tercihler -> Yönetim'e (soldaki bölmeden) giderek bir yol ayarlamanız gerekir .

Bu yardımcı olur umarım.


3
Windows kullanıcıları için, bu .exe adresinde yer almaktadır:C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe
Jason,

1
MySQLWorkbench v8.0.16, sütun istatistikleri bayrağını ayarlama seçeneğini hala eksik. Bu çözüm, gelecekteki sorunlarda MySQL sürümlerinin uygun şekilde eşleşmesini sağladığı için tartışmasız en iyi cevaptır.
Kiksy

5

Yapmak için bu yanıtı kolay, yeniden adlandırmak olabilir mysqldump, onun yerine bir shell script yapıp adını çağrı mysqldumpile --column-statistics=0argüman. Örneğin:

MySQLDump yeniden adlandırın:

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

Aşağıdaki kabuk betiğini yerine kaydedin:

#!/bin/sh

_mysqldump --column-statistics=0 $@

1
Bu harika bir öneridir ve MacOSX'te Mysql Workbench ile çalışır, ancak gerçek mysqldump uygulamasına giden tam yolu eklemeniz gerekir veya işe yaramadı. Denedim. / Yine de işe yaramazdı. Tam yola koyma ve Tezgah, işaretlenmiş istatistiklerle onu çalıştırabildi.
Andy D,

4

Etrafında En Kolay Çalışma

Kullanırken MySQL tezgah 8.0

  • "Veri Dışa Aktar" sekmesini açın
  • Gelişmiş Seçenekler'i tıklayın görüntü tanımını buraya girin
  • Diğer başlığının altında sütun istatistiklerini 0 olarak ayarlayın. görüntü tanımını buraya girin
  • Tekrar dışa aktargörüntü tanımını buraya girin

İyi şanslar!


5
"Diğer" bölümünde bu seçeneğim yok
JoRouss

8.0.13 indirin @JoRouss downloads.mysql.com/archives/workbench belki 0,16 versiyonu tekrar olacak! Öte yandan :-) komut satırını kullanıyoruz
François Breton

@DodiX önerisini kullanarak sona erdi. @ Francois teşekkürler!
JoRouss

8.0.16 çıkana kadar aptal geçici çözüm: Gelişmiş seçenekler'de "zorla" kontrol edin, böylece hata yoksayılır. Elbette bu başka bir hatayı görmezden gelecektir
Bostone

@Bostone, bu çözüm hatayı atlamıyor.
Casper


0

Benim durumumda mac-os kullanıyorum. Bu arada, dosyada dizinin altına yerleştirilen [mysqldump] column-statistics=0alanlar vardı . Bu alanı silmek sorunu çözdü. (değil: mysql sürümü 5.7 ve homebrew aracılığıyla yüklenir).my.cnf/usr/local/etc


0

Aynı sorunu yaşadım, birden fazla veri tablosunu varolan şemaya diğer şemalardan birleştirip birleştirilen verileri kendi kendine komut dosyası dosyasına aktardığımda ortaya çıkıyor. Column-statistics = 0 değiştirmeyi denedim, ancak sonuç şöyle oldu:

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

Bu yüzden yardım etmedim. MySQL günlüğünü analiz ettim ki buldum

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 boyutundan şikayetçi. 24 MB'a yaptım. Sonra çalışıyor.


0

XAMPP kullanıyorum ve MySQL Workbench sürüm uyuşmazlığı konusunda uyarıyor. MySQL Workbench'i, XAMPP'nin mysql.exe ve mysqldump.exe'yi gösterecek şekilde ayarladım.

Düzen -> Tercihler -> Yönetim'e gidin ve her birinin yolunu ayarlayın.

Bu en azından 8.0.14 sürümü için çalışıyor. Bu nedenle diğerleri için, mysql ve mysqldump paketinin bir sürümünü kullanmaktan kaçınmak isteyebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.