mysqldump फेंकता है: अज्ञात तालिका 'COLUMN_STATISTICS' में info_schema (1109)


117

हर बार जब मैं एक प्रयास करता हूं तो 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- क्लाइंट का उपयोग कर रहा हूं 8.0और mysql 5-7सर्वर तक पहुंचने का प्रयास कर रहा हूं - शायद यही कारण है?

जवाबों:


168

यह एक नए झंडे के कारण है जो डिफ़ॉल्ट रूप से mysqldump 8 में सक्षम है। आप इसे जोड़ सकते हैं - कॉलम-आँकड़े = 0 जोड़कर। कमांड कुछ इस तरह होगी:

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

चेक इस लिंक अधिक जानकारी के लिए। डिफ़ॉल्ट रूप से स्तंभ के आँकड़े अक्षम करने के लिए, आप जोड़ सकते हैं

[mysqldump]
column-statistics=0

एक MySQL कॉन्फिग फ़ाइल, जैसे /etc/my.cnf या ~ / .my.cnf।


- डेटाबेस <डेटाबेस का नाम> एक विशेष डेटाबेस के लिए
मोहम्मद हशाम

@forthrin उत्तर परिवर्तन को स्थायी बनाने के तरीके को दिखाने के लिए संपादित किया गया।
एंड्रयू स्कुलमैन

2
MySQL वर्कबेंच में एक सेटिंग भी है: "उन्नत विकल्प ..." के तहत, "अन्य" अनुभाग में, एक स्तंभ-आँकड़े हैं जो "TRUE" पर सेट है। अक्षम करने के सुझाव के रूप में इसे शून्य में बदलें।
एलेक्स बार्कर

6
MySQLWorkbench v8.0.14 में वह सेटिंग नहीं है। मैंने क्या किया (एक मैक पर) MySQLWorkbench का एक पुराना संस्करण डाउनलोड किया गया था, उस पैकेज (शो पैकेज सामग्री) को खोला और 'mysqldump' के अपने बंडल संस्करण को बाहर निकाला। मैंने तब MySQLWorkbench वरीयताओं को इसके बजाय 'mysqldump' के इस संस्करण को देखने के लिए संपादित किया। निर्यात किसी भी झंडे को सेट किए बिना ठीक काम करता है। रेफरी) Bugs.mysql.com/bug.php?id=91640#c484427
स्कॉट

1
DataGrip का उपयोग करने वाले किसी के लिए, आप डेटाबेस विंडो में स्कीमा पर राइट-क्लिक कर सकते हैं, "mysqldump 'के साथ डंप" पर जाएं, और --column-statistics=0पॉपअप विंडो के नीचे स्थित बॉक्स में उत्पन्न तर्क सूची में तर्क जोड़ें ।
Travesty3

27

MySQL कार्यक्षेत्र का उपयोग करने वालों के लिए, डेटा निर्यात स्क्रीन पर "उन्नत विकल्प" बटन है। विकल्प "कॉलम का उपयोग करें" को 0 पर सेट करके अक्षम किया जा सकता है।

मैंने पुष्टि नहीं की है, लेकिन निम्नलिखित जानकारी को भी सच होने का सुझाव दिया गया है: संस्करण 8.0.14 में यह गायब है। संस्करण 8.0.16 में यह डिफ़ॉल्ट रूप से ऐसा कर रहा है।


7
केवल MySQL Workbench संस्करण 8.0.13 और उसके बाद "उपयोग कॉलम सांख्यिकी" को अक्षम करने का विकल्प है।
पॉल डेंग

7
MySQL कार्यक्षेत्र संस्करण 8.0.14 में यह विकल्प नहीं है। लगता है जैसे उन्होंने इसे निकाल लिया।
डीन या

3
वास्तव में, Bugs.mysql.com/bug.php?id=94294 , 8.0.16 में वापस आ जाना चाहिए ...
जीन-क्रिस्टोफ मीलाउद

अभी भी 8.0.16 पर होता है
अमीर बार

मैं पुष्टि कर सकता हूं कि MySQLWorkbench v8.0.17 ने समस्या (MacOs) को ठीक कर दिया है। यह त्रुटि MySQLWorkbench v8.0.12 पर फेंक रहा था और अपग्रेड किया गया था। मैंने देखा कि इसने मुझे 5.X DB से डेटा निर्यात करने के बारे में चेतावनी नहीं दी और स्वचालित रूप --column-statistics=0से निर्यात कमांड में जोड़ दिया ।
Elte156

20

मैंने पूरा दिन एक समाधान की तलाश में बिताया, और मुझे बस साझा करने के लिए यहां गाया।

हां, शायद यह त्रुटि संस्करणों के अंतर के कारण है।

बस यहाँ से MySQL 5.7 ZIP संग्रह डाउनलोड करें: https://dev.mysql.com/downloads/mysql/ और इसे अनज़िप करें, फिर वहाँ से mysqldump.exe फ़ाइल का उपयोग करें।

यदि आप MySQL Workbench का उपयोग कर रहे हैं, तो आपको संपादित -> प्राथमिकताएँ -> प्रशासन (बाएं हाथ के फलक से) पर जाकर डाउनलोड किए गए mysqldump टूल पर एक पथ सेट करना होगा ।

उम्मीद है की यह मदद करेगा।


3
विंडोज उपयोगकर्ताओं के लिए, यह .exe यहां स्थित था:C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqldump.exe
जेसन

1
MySQLWorkbench v8.0.16 अभी भी कॉलम-सांख्यिकी ध्वज सेट करने के विकल्प को याद नहीं कर रहा है। यह समाधान यकीनन सबसे अच्छा जवाब है क्योंकि यह भविष्य के मुद्दों के मामले में MySQL संस्करणों के उचित मिलान की अनुमति देता है।
किसिक

5

इस उत्तर को आसान बनाने के लिए , आप नाम बदल सकते हैं mysqldump, इसके स्थान पर एक शेल स्क्रिप्ट बना सकते हैं और नाम बदलकर तर्क के mysqldumpसाथ कॉल कर सकते हैं --column-statistics=0। उदाहरण के लिए:

माईस्कल्ड का नाम बदलें:

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

निम्न शेल स्क्रिप्ट को इसके स्थान पर सहेजें:

#!/bin/sh

_mysqldump --column-statistics=0 $@

1
यह एक शानदार सुझाव है और मैसकॉल वर्कबेन्च के साथ मैकओएसएक्स में काम करता है, हालांकि आपको अपने वास्तविक mysqldump निष्पादन योग्य के लिए पूर्ण पथ को शामिल करना होगा या यह काम नहीं करता था। मैंने कोशिश की। / लेकिन फिर भी काम नहीं करेगा। पूरे रास्ते में रखना और कार्यक्षेत्र को चिह्नित किए गए आँकड़ों के साथ चलाने में सक्षम था।
एंडी डी

4

सबसे आसान काम के आसपास

जब मैसकल वर्कबेन्च 8.0 का उपयोग कर रहे हैं

  • "डेटा निर्यात" टैब खोलें
  • उन्नत विकल्प पर क्लिक करें यहां छवि विवरण दर्ज करें
  • अन्य शीर्षक के तहत, स्तंभ के आँकड़े 0 पर सेट करें यहां छवि विवरण दर्ज करें
  • फिर से निर्यात करेंयहां छवि विवरण दर्ज करें

शुभकामनाएँ!


5
मेरे पास "अन्य" खंड में यह विकल्प नहीं है
21

@JoRouss डाउनलोड 8.0.13 downloads.mysql.com/archives/workbench हो सकता है ।16 संस्करण फिर से होगा! दूसरा मार्ग हम कमांड लाइन का उपयोग करते हैं :-)
फ्रांस्वा ब्रेटन

मैंने @DodiX सुझाव का उपयोग कर समाप्त किया। धन्यवाद @ फ्रैंकोइस!
JoRouss

8.0.16 तक स्टूपिड वर्कअराउंड: उन्नत विकल्पों में "बल" की जांच करें ताकि त्रुटि को नजरअंदाज किया जा सके। बेशक यह किसी अन्य त्रुटि को नजरअंदाज कर देगा
बोसोन

@Bostone, यह समाधान त्रुटि को ठीक नहीं करता है।
कैस्पर

2

MacOS के लिए आपको "कॉलम-सांख्यिकी" देखने के लिए पुराने संस्करण (8.0.13) की आवश्यकता है, क्योंकि मैं संस्करण 8.0.14 और 8.0.15 का परीक्षण करता हूं और दोनों "कॉलम-आंकड़े" नहीं दिखा रहे हैं।

तो, "कॉलम-स्टैटिस्टिक्स" को एडजस्ट करने के लिए संस्करण 8.0.13 का उपयोग करें।


0

मेरी स्थिति में, मैं मैक-ओएस का उपयोग कर रहा हूं। वैसे, फ़ाइल [mysqldump] column-statistics=0में फ़ील्ड्स थे my.cnfजो /usr/local/etcनिर्देशिका के अंतर्गत रखा गया है । उस फ़ील्ड को हटाने से समस्या ठीक हो गई। (नहीं: mysql संस्करण 5.7 है और होमब्रे के माध्यम से इंस्टॉल किया गया है)।


0

मेरे पास भी यही मुद्दा था, यह तब होता है जब मैं कई डेटा तालिकाओं को अन्य स्कीमा से मौजूदा स्कीमा में विलय कर देता है और स्वयं में समाहित स्क्रिप्ट फ़ाइल में डेटा को निर्यात करता है। मैंने कॉलम-आँकड़े = 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 वर्कबेंच एक संस्करण बेमेल के बारे में चेतावनी देता है। मैंने XAMPP के mysql.exe और mysqldump.exe को इंगित करने के लिए MySQL कार्यक्षेत्र को सेट किया।

संपादित करें -> प्राथमिकताएं -> प्रशासन पर जाएं और प्रत्येक के लिए पथ निर्धारित करें।

यह कम से कम संस्करण 8.0.14 के लिए काम करता है। तो दूसरों के लिए आप mysql और mysqldump के बंडल संस्करण का उपयोग करने से बचना चाह सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.