तालिका 'प्रदर्शन_श्रेमा. सत्र_अभियान' मौजूद नहीं है


299

MySQL को 5.7.8-आरसी में अपग्रेड करने और सर्वर पर लॉग इन करने के बाद मुझे त्रुटि मिली:

Table 'performance_schema.session_variables' doesn't exist

मुझे इसका कोई हल नहीं मिल रहा है। क्या आप मदद कर सकते हैं ?


2
और एक। लगता है कि आपका अपग्रेड सफल नहीं हुआ। आप नवीनीकरण प्रक्रिया को फिर से करने (या) 5.7.8-rcसंस्करण को फिर से स्थापित करने और DB फुल बैकअप से पुनर्स्थापित करने पर विचार कर सकते हैं ।
राहुल

2
क्या आपने mysql_upgradeयह सुनिश्चित करने के लिए दौड़ लगाई कि कोर टेबल / डीबीएस में कोई बदलाव किया गया था?
मार्क बी

हाँ, मैंने बनाया है mysql_upgrade, मैं इसे आखिरी कोशिश देता हूं और इसे फिर से स्थापित कर रहा हूं। अगर यह काम नहीं करेगा तो मैं 5.6 वर्जन पर डाउनग्रेड करूंगा
Taz

28
मैंने एक ही समस्या का अनुभव किया, इसे हल करने के लिए, मैं चलाता हूं mysql_upgrade -u root -p --force, फिर मैंने DB सर्वर को पुनरारंभ किया।
रॉबगोनम

यदि mysql_upgrad कमांड काम नहीं करता है, तो mysql.performance_schema तालिका दूषित हो सकती है। हमें यह समस्या थी। समस्या को ठीक करने के लिए, हमने कमांड का उपयोग करके डेटाबेस सर्वर को हटा दिया: apt-get purge mariadb-client-10.1 mariadb-common mariadb-server-10.1। इसने सभी डेटाबेस बाइनरी, कॉन्फ़िगरेशन और डेटा फ़ाइल को हटा दिया। अगला हमने डेटाबेस सर्वर को फिर से इंस्टॉल किया और डेटाबेस को वापस आयात किया। उसके बाद डेटाबेस सर्वर समस्याओं के बिना चला
नादिर लतीफ

जवाबों:


227

Mysql_upgrad ने मेरे लिए भी काम किया:

# mysql_upgrade -u root -p --force
# systemctl restart mysqld

सादर, MSz


25
मुझे mysqld को पुनः आरंभ करने की आवश्यकता थी ( mysql.server restartचूंकि, मैं OS x पर होमबॉर्न इंस्टॉल का उपयोग कर रहा हूं), इसलिए यह मददगार था। अन्यथा मुझे गलत संरचना वाले session_variables के बारे में एक त्रुटि मिली।
जेफ्री विस्मैन

OS X 10.10.5 (Yosemite) पर Homebrew के साथ समान व्यवहार। डेटाबेस को लोड करने का प्रयास करते समय अपग्रेड करना सीक्वल प्रो 1.1 (बिल्ड 4499) में क्रैश को भी ठीक करता है।
विलियम टरेल

4
Native table 'performance_schema'.'session_variables' has the wrong structure
Stephen

8
यदि आप उपयोग कर रहे हैं तो आप brew servicesअपने सर्वर को पुनः आरंभ कर सकते हैं brew services restart mysql
फ्रेडरिक कम्मर

1
यह मेरे लिए काम नहीं करता है, सही उत्तर viq द्वारा दिया गया है। केवल शो संगतता को सक्षम करने के लिए आवश्यक है।
काटो 2

482

मैंने सुझाव दिया कमांड चलाने के बाद mysql सर्वर पर लॉग इन करने में सक्षम था:

mysql_upgrade -u root -p --force

एक MySQL सर्वर पुनरारंभ की आवश्यकता है।


6
यह अच्छी तरह से काम किया। धन्यवाद। मैं जानना चाहता हूं कि इसका कारण क्या है।
खुदाई

2
मैं हो रही है Access denied for user 'root'@'localhost' (using password: YES) while connecting to the MySQL server, भले ही मैं सही रूट पासवर्ड का उपयोग कर रहा हूँ। कोई मदद?? : - /
साठवाँ

4
@ साठवाँ को -p हटाने की कोशिश करें
माइक मेलोर

1
@NevilleNazerane मैं आसान php से परिचित नहीं हूँ, लेकिन आपको यह पता लगाने में सक्षम होना चाहिए कि mysql कहाँ स्थापित होता है और फिर बस एक cdm प्रॉम्प्ट खोलें और निर्देशिका को उस स्थान पर बदलें। अब आपको कमांड चलाने में सक्षम होना चाहिए।
मिहाई काराकॉस्टिया

4
@diguage इसका कारण यह है कि MySQL के संस्करण उन्नयन ने आंतरिक मेटाडेटा के लिए संस्करण असंगत स्कीमा को पेश किया है। मेरे लिए मैं MySQL 5.6 को MySQL 5.7 में अपग्रेड कर रहा हूं एक मैक पर Homebrew और MySQL डेटा डायरेक्टरी का उपयोग नहीं किया गया था इसलिए नया संस्करण MySQL पुराने आंतरिक मेटाडेटा को पढ़ रहा था लेकिन यह नहीं जानता कि क्या करना है - उस त्रुटि को हमने यहां देखा है। उस मुद्दे का प्रकटन। बाद mysql_upgradeऔर एक पुनः आरंभ, सब कुछ काम किया। देखें: dev.mysql.com/doc/refman/5.7/en/mysql-upgrade.html
Devy

110
mysql -u app -p
mysql> set @@global.show_compatibility_56=ON;

http://bugs.mysql.com/bug.php?id=78159 के अनुसार मेरे लिए काम किया।


1
यह पूरी तरह से मेरे लिए काम किया! और मुझे mysql सर्वर को पुनः आरंभ करने की आवश्यकता नहीं थी, जो इतना बोझिल होता
anu.agg

3
मुझे क्षमा करें, यह कुछ हद तक आकार का समाधान है: जैसे मक्खी को मारने के लिए बाज़ूका का उपयोग करना। इस संगतता स्विच के कई और प्रभाव हैं, आप उन सभी को नहीं चाह सकते हैं।
टुनके गोनकुओलू

@Tuncay Göncüoğlu इनमें से कुछ दुष्प्रभाव क्या हैं?
katzmopolitan

@katzmopolitan यहां पढ़ें: dev.mysql.com/doc/refman/5.7/en/… । परिवर्तन ज्यादातर INFORMATION_SCHEMA हैंडलिंग (सुरक्षा आदि) से संबंधित हैं, लेकिन अधिक हैं।
तुनेके गोनकुओलू

इसने मेरे लिए भी काम किया। मुझे जो त्रुटि संदेश मिला वह mysqldump का था। एक बार जब मैंने सुझाव दिया बदलाव mysqldump ने काम किया। एक बार डंप होने के बाद मैंने शो-कॉम्पटेलिटी_56 को वापस ऑफ में बदल दिया।
ब्रायन

23

चूंकि ऊपर दिए गए उत्तरों में से कोई भी वास्तव में नहीं समझाता है कि क्या हुआ था, इसलिए मैंने इस मुद्दे पर कुछ और विवरण लाने का फैसला किया।

हां, समाधान MySQL अपग्रेड कमांड को चलाने के लिए है, इस प्रकार है: mysql_upgrade -u root -p --force लेकिन क्या हुआ?

इस मुद्दे का मूल कारण भ्रष्टाचार है performance_schema, जिसके कारण हो सकते हैं:

  • कार्बनिक भ्रष्टाचार (वॉल्यूम काबूम, इंजन बग, कर्नेल ड्राइवर समस्या आदि)
  • Mysql Patch के दौरान भ्रष्टाचार (विशेष रूप से प्रमुख संस्करण उन्नयन के लिए mysql पैच के दौरान ऐसा होना अस्वाभाविक नहीं है)
  • एक सरल "ड्रॉप डेटाबेस परफॉर्मेंस_चेमा" स्पष्ट रूप से इस समस्या का कारण होगा, और यह उसी तरह के लक्षण पेश करेगा जैसे यह भ्रष्ट था

यह समस्या पैच से पहले भी आपके डेटाबेस पर मौजूद हो सकती है, लेकिन MySQL 5.7.8 पर विशेष रूप से यह हुआ कि ध्वज show_compatibility_56ने डिफ़ॉल्ट रूप से डिफ़ॉल्ट मान को बदल दिया ONहै,OFF । यह ध्वज नियंत्रित करता है कि इंजन विभिन्न MySQL संस्करणों पर चर (सत्र और वैश्विक) स्थापित करने और पढ़ने के लिए प्रश्नों पर कैसे व्यवहार करता है।

क्योंकि MySQL 5.7+ ने ऑन के performance_schemaबजाय इन चरों को पढ़ना और संग्रहीत करना शुरू कर दिया information_schemaथा, इस ध्वज को ONइस परिवर्तन के ब्लास्ट त्रिज्या को कम करने और उपयोगकर्ताओं को परिवर्तन के बारे में बताने और इसकी आदत डालने के लिए पहली रिलीज़ के रूप में पेश किया गया था।

ठीक है, लेकिन कनेक्शन विफल क्यों होता है? क्योंकि आपके द्वारा उपयोग किए जा रहे ड्राइवर (और इसके कॉन्फ़िगरेशन) के आधार पर, यह डेटाबेस के लिए शुरू किए गए हर नए कनेक्शन (जैसे show variables, उदाहरण के लिए) के लिए रनिंग कमांड को समाप्त कर सकता है । क्योंकि इन आदेशों में से एक भ्रष्ट को एक्सेस करने की कोशिश कर सकता हैperformance_schema , पूरी तरह से शुरू होने से पहले पूरे कनेक्शन को निरस्त कर देता है।

तो, सारांश में, आप कर सकते हैं पड़ा है (यह असंभव अब बताने के लिए है) performance_schemaया तो लापता या पैच से पहले भ्रष्ट। 5.7.8 के पैच ने इंजन को आपके चर को बाहर पढ़ने के लिए मजबूर किया performance_schema(इसके बजाय information_schema, जहां यह ध्वज के मुड़ने के कारण इसे पढ़ रहा था ON)। चूंकि performance_schemaदूषित था, कनेक्शन विफल हो रहे हैं।

डाउनटाइम के बावजूद MySQL अपग्रेड चलाना सबसे अच्छा तरीका है। झंडे को चालू करना एक विकल्प है, लेकिन यह निहितार्थ के अपने सेट के साथ आता है क्योंकि यह पहले से ही इस धागे पर इंगित किया गया था।

दोनों को काम करना चाहिए, लेकिन परिणामों को वज़न और अपनी पसंद पता :)


1
धन्यवाद। मैं सोच रहा था कि कूदने और बदलाव करने से पहले यह समस्या क्या थी।
केन इंग्राम

4

बिना इन चरणों का पालन करें -p:

  1. mysql_upgrade -u root
  2. systemctl restart mysqld

मुझे भी यही समस्या थी और यह काम करता है!


यह काम! केवल systemctl restart mysqldकाम नहीं किया।
निंजा

तब का उपयोग करेंsystemctl restart mysql
BitDEVil2K16 17

1

साठवाँ प्रश्न के रूप में, यदि आपका mysql रूट उपयोगकर्ता गलत प्रतीत होता है, तो mysql आधिकारिक स्रोत से विन्यासकर्ता एक्सटेंशन को स्थापित करने का प्रयास करें:

https://dev.mysql.com/downloads/repo/apt/

यह आपको एक नया रूट यूजर पासवर्ड सेट करने में मदद करेगा।

अपनी रिपॉजिटरी (डेबियन / ubuntu) को अपडेट करना सुनिश्चित करें:

apt-get update

0

मेरे सिस्टम के लिए यह समस्या समाप्त हो रही है कि मेरे पास अभी भी माईस्क्ल 5.6 स्थापित है और इसलिए उस इंस्टालेशन से mysql_upgrad.exe 5.7 के बजाय एक के बजाय कॉल किया जा रहा था। नेविगेट करें C:\Program Files\MySQL\MySQL Server 5.7\binऔर चलाएं.\mysql_upgrade.exe -u root


0

यदि, mysql_upgrade -u root -p --forceकमांड का उपयोग करते समय आपको यह त्रुटि मिलती है:

Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MySQL Servers datadir, errno: 13

बस sudoकमांड से पहले जोड़ें । मेरे लिए यह काम कर गया और मैंने अपनी समस्या हल कर ली। तो, यह है: sudo mysql_upgrade -u root -p --force:)


-2

कभी कभी mysql_upgrade -u root -p --force पर्याप्त रूप से पर्याप्त नहीं होता है,

कृपया इस प्रश्न का संदर्भ लें: तालिका 'प्रदर्शन_केम.सेशन_वायरल' मौजूद नहीं है

इसके अनुसार:

  1. cmd खोलें
  2. cd [installation_path]\eds-binaries\dbserver\mysql5711x86x160420141510\bin
  3. mysql_upgrade -u root -p --force
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.