MySQL> तालिका मौजूद नहीं है। लेकिन यह (या यह होना चाहिए)


261

मैंने एक MySQL स्थापना के डेटाडेयर को बदल दिया और एक को छोड़कर सभी आधार सही ढंग से चले गए। मैं कनेक्ट कर सकता हूं और USEडेटाबेस। SHOW TABLESमुझे भी सभी तालिकाओं को सही ढंग से देता है, और प्रत्येक तालिका की फाइलें MySQL डेटा निर्देशिका पर मौजूद हैं।

हालाँकि, जब मैं SELECTतालिका से कुछ करने की कोशिश करता हूं, तो मुझे एक त्रुटि संदेश मिलता है कि तालिका मौजूद नहीं है। फिर भी, इसका कोई मतलब नहीं है क्योंकि मैं SHOW TABLESबयान के माध्यम से एक ही तालिका दिखाने में सक्षम था ।

मेरा अनुमान है कि SHOW TABLESफ़ाइल अस्तित्व को सूचीबद्ध करती है लेकिन यह जाँच नहीं करती है कि फ़ाइल दूषित है या नहीं। नतीजतन, मैं उन फ़ाइलों को सूचीबद्ध कर सकता हूं लेकिन उन्हें एक्सेस नहीं कर सकता।

फिर भी, यह केवल एक अनुमान है। मैंने पहले इसे कभी नहीं देखा है। अब, मैं परीक्षण के लिए डेटाबेस को पुनः आरंभ नहीं कर सकता, लेकिन इसका उपयोग करने वाला प्रत्येक अन्य अनुप्रयोग ठीक चल रहा है। लेकिन यह सिर्फ एक अनुमान है, मैंने ऐसा पहले कभी नहीं देखा।

क्या किसी को पता है कि ये क्यों हो रहा है?

उदाहरण:

mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database    |
+-----------------------+
| TABLE_ONE             |
| TABLE_TWO             |
| TABLE_THREE           |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist

क्या आपने डेटाबेस को बैकअप से पुनर्स्थापित किया है? या आप बस DB फ़ाइलों की नकल की? क्या आपके पास mysql सर्वर का रूट एक्सेस है?
अलिनोज़

बस फ़ाइलों की नकल! हाँ, मेरे पास सब कुछ रूट एक्सेस है
जॉनसन

क्या आप कोशिश कर सकते हैं: mysql_fix_privilege_tables
alinoz

4
क्या ये मासूम टेबल हैं?
पॉल डिक्सन

1
हां, सभी टेबल InnoDB हैं। यह नहीं कहने के लिए मेरी बुरी!
जॉनस्मिथ

जवाबों:


263

बस के मामले में किसी को भी परवाह है:

सीधे कमांड का उपयोग करके डेटाबेस निर्देशिका की प्रतिलिपि बनाने के बाद मेरे पास एक ही मुद्दा था

cp -r /path/to/my/database /var/lib/mysql/new_database

यदि आप ऐसा डेटाबेस के साथ करते हैं जो InnoDBतालिकाओं का उपयोग करता है , तो आपको यह पागल मिलेगा 'तालिका मौजूद नहीं है' ऊपर उल्लिखित त्रुटि है।

मुद्दा यह है कि आपको ib*MySQL डेटादिर (जैसे ibdata1, ib_logfile0और ib_logfile1) के रूट में फ़ाइलों की आवश्यकता है ।

जब मैंने उन लोगों की नकल की तो यह मेरे लिए काम कर गया।


27
मेरी ज़िंदगी बचाई! यदि आप किसी नए इंस्टालेशन को कॉपी करने का प्रयास कर रहे हैं तो किसी और के लिए केवल मौजूदा ib * फाइलों को अधिलेखित नहीं करना सुनिश्चित करें। अपने मौजूदा mysql / निर्देशिका का बैकअप लें, उस पुराने को बदल दें जिसे आप पुनर्प्राप्त करना चाहते हैं, mysqldump सब कुछ, फिर नए mysql / को पुनर्स्थापित करें। तब आप mysqldumps को ठीक से आयात कर सकते हैं।
मैथ्यू

1
मैक पर मेरे डेटाबेस को स्थानीय रूप से दोहराने के लिए, ibdata फ़ाइल (डेटाबेस dir के बगल में स्थित) पर कॉपी करने के अलावा, मुझे chown _mysql:wheelडेटाबेससेन dir, ibdata और dir (उपयोग chown -R ...) में सभी फ़ाइलों को करना था । इसी तरह, डायर के अंदर अनुमतियाँ गलत थीं इसलिए chmod -R 660 databasenameडेटाटबेस में दिखाने के लिए तालिकाओं की आवश्यकता थी।
डायलन वालडे

4
धन्यवाद माइक। बस स्पष्ट करने के लिए आपको यह काम पाने के लिए mysql सेवा को पुनरारंभ करना होगा। कम से कम मैंने किया, और अच्छाई का धन्यवाद यह काम किया। बहुत सारा डेटा वहाँ बचा लिया!
निक मार्टिन

15
नोट: उपयोग करने के लिए मत भूलना chown!!! इसलिए, सभी cpइस आदेश का उपयोग करने के बाद ->chown mysql:mysql /var/lib/mysql/ -R
के-गन

1
नोट 2: उचित अनुमति लागू करना न भूलें। मेरे मामले में sudo chmod -R 600 /var/lib/mysql
ऑगस्टो

45

मेरे लिए मैक ओएस (MySQL DMG इंस्टॉलेशन) पर MySQL सर्वर के सरल रीस्टार्ट ने समस्या को हल किया। मैं अनुमान लगा रहा हूँ कि हाइबरनेशन के कारण यह हुआ।


धन्यवाद मेरे लिए भी यही मुद्दा तय किया। अचानक बिजली गुल होने के कारण मेरी मशीन बंद हो गई। पहली मशीन पुनरारंभ / MySQL स्टार्टअप के बाद, मुझे त्रुटि मिली। फिर, मैंने यह उत्तर पढ़ा। मैंने सिस्टम प्राथमिकता के माध्यम से MySQL को रोक दिया / शुरू कर दिया और यह तय हो गया।
जेफ इवांस

2
sudo /usr/local/mysql/support-files/mysql.server restart
laffuste

इसी तरह। मैं macOS सिएरा 10.12.6 में अपग्रेड करने के बाद इसमें भाग गया। निश्चित नहीं है कि एक कारण लिंक है, लेकिन समय संदिग्ध लगता है।
डेव मुलिगन

धन्यवाद, कुछ हद तक काम किया; मैंने फिर से (5.6, विंडोज़) mysql सेवा को फिर से शुरू किया, check table TABLE_ONE;मुझे कुछ त्रुटियां मिलीं "विभाजन P2 लौटा त्रुटि", "idx_blah_1 को भ्रष्ट के रूप में चिह्नित किया गया है", और "idx_blah_2 को भ्रष्ट के रूप में चिह्नित किया गया है"। अब मैं वापस चल रहा हूँ optimize table TABLE_ONE;और त्रुटि "टेबल 'डेटाबेस पा रहा हूँ । TABLE_ONE' मौजूद नहीं है"।
उमर

Mojave पर MySLQ चल रहा है। सिस्टम वरीयताओं के पैनल के माध्यम से पुनरारंभ करने से काम नहीं हुआ। मुझे कमांड लाइन के माध्यम से पुनः आरंभ करना था।
कोर्टेक्स

30

मुझे यह समस्या तब आती है जब मैं जिस टेबल नाम का उपयोग कर रहा हूं उसका मामला बंद है। इसलिए तालिका को 'डीबी' कहा जाता है लेकिन मैंने चुनिंदा बयान में 'डीबी' का इस्तेमाल किया। सुनिश्चित करें कि मामला समान है।


13
+1 फ़ील्ड नाम संवेदनशील नहीं हैं, लेकिन तालिका के नाम हैं। सामान्य गलती, और बहुत कष्टप्रद।
GolezTrol

27

यह त्रुटि तब भी हो सकती है जब सेटिंग lower_case_table_namesकरने के लिए 1, और फिर उस चर के लिए डिफ़ॉल्ट मान के साथ बनाई गई तालिकाओं तक पहुंचने की कोशिश कर रहा हो। उस स्थिति में आप इसे पिछले मूल्य पर वापस ला सकते हैं और आप तालिका को पढ़ पाएंगे।


4
यह मुझे थोड़ा। मैंने मान वापस किया, डेटाबेस को फिर से शुरू किया, तालिकाओं को निर्यात किया, मान 1 पर वापस सेट किया, डेटाबेस को फिर से शुरू किया, तालिकाओं को फिर से आयात किया और सब कुछ फिर से काम किया।
wmarbut

17
  1. बंद करो mysqld
  2. बैकअप mysql फ़ोल्डर: cp -a /var/lib/mysql /var/lib/mysql-backup
  3. पुराने मशीन से डेटाबेस फ़ोल्डर की प्रतिलिपि बनाएँ /var/lib/mysql
  4. पुराने डेटाबेस से ib * (ib_logfile *, ibdata) को ओवरराइड करें
  5. mysqld शुरू करें
  6. डंप करना
  7. mysqldump >dbase.mysql
  8. mysql सेवा बंद करो
  9. हटाना /var/lib/mysql
  10. का नाम बदल /var/lib/mysql-backupदिया/var/lib/mysql
  11. mysqld शुरू करें
  12. डेटाबेस बनाएँ
  13. mysqldump < dbase.mysql

मेरे मामले में, मुझे यह भी करना था: 10.5 के तहत <db_name> निर्देशिका को / var / lib / mysql / से हटा दें
टोनी द टेक

यह काम नहीं कर रहा है। :( टेबल 'tablename.wp_posts' मौजूद नहीं है
जहीरुल इस्लाम मामून

14

कृपया क्वेरी चलाएँ:

SELECT 
    i.TABLE_NAME AS table_name, 
    LENGTH(i.TABLE_NAME) AS table_name_length,
    IF(i.TABLE_NAME RLIKE '^[A-Za-z0-9_]+$','YES','NO') AS table_name_is_ascii
FROM
    information_schema.`TABLES` i
WHERE
    i.TABLE_SCHEMA = 'database'

दुर्भाग्य से MySQL यूनिकोड और गैर-मुद्रण योग्य वर्णों को तालिका नाम में उपयोग करने की अनुमति देता है। यदि आपने कुछ दस्तावेज़ / वेबसाइट से क्रिएट कोड की प्रतिलिपि बनाकर अपनी तालिकाएँ बनाईं, तो एक मौका है कि इसमें कहीं-कहीं शून्य-चौड़ाई है।


बहुत उपयोगी पोस्ट, धन्यवाद! लेकिन सभी तालिकाओं सही नाम लंबाई के साथ ASCII हैं
johnsmith

11

मैंने इस दुःस्वप्न पर सिर्फ तीन दिन बिताए हैं। आदर्श रूप से, आपके पास एक बैकअप होना चाहिए जिसे आप पुनर्स्थापित कर सकते हैं, फिर बस क्षतिग्रस्त तालिका को छोड़ दें। इस प्रकार की त्रुटियाँ आपके ibdata1 के बढ़ने का कारण बन सकती हैं बहुत बड़ा (100GB + मामूली टेबल के आकार में)

यदि आपके पास हाल ही में बैकअप नहीं है, जैसे कि यदि आप mySqlDump पर निर्भर हैं, तो आपका बैकअप शायद चुपचाप अतीत में किसी बिंदु पर टूट गया है। आपको डेटाबेस को निर्यात करने की आवश्यकता होगी, जो निश्चित रूप से आप नहीं कर सकते, क्योंकि आपको mySqlDump चलाते समय लॉक त्रुटियां मिलेंगी।

इसलिए, वर्कअराउंड के रूप में, /var/log/mysql/database_name/table_name पर जाएं और निकालें। *

फिर तुरंत तालिका को डंप करने का प्रयास करें; यह काम अब करना चाहिए। अब डेटाबेस को एक नए डेटाबेस में पुनर्स्थापित करें और लापता तालिका (नों) का पुनर्निर्माण करें। फिर टूटे हुए डेटाबेस को डंप करें।

हमारे मामले में हमें लगातार mysql has gone awayसभी डेटाबेस पर यादृच्छिक अंतराल पर संदेश मिल रहे थे ; एक बार क्षतिग्रस्त डेटाबेस हटा दिए जाने के बाद सब कुछ सामान्य हो गया।


धन्यवाद एंडी, मुझे जो समस्या आ रही है, उसके लिए मुझे एक सुराग मिला। मैं सी ड्राइव पर अंतरिक्ष की कमी को बचाने के लिए सी ड्राइव में कुछ ड्राइव से ibdata1 ले गया। शुक्र है कि मुझे आपकी टिप्पणी पढ़ने के बाद मेरी डी ड्राइव में ibdata1 (ib_logfile1। और ib_logfile0 फ़ाइल के साथ) मिला। अब देखेंगे कि मैंने इन फ़ाइल को कहां से स्थानांतरित किया है और इसे वहां पुनर्स्थापित किया है। फिर उम्मीद है कि मेरी टेबल वापस आ जाएगी।
एकेएस

आप "तालिका को तुरंत डंप करने का प्रयास कैसे करते हैं"? मेरे पास एक ही मुद्दा है, कोई बैकअप नहीं है इसलिए मैं कम से कम टेबल संरचना प्राप्त करने के लिए रास्ता ढूंढ रहा हूं लेकिन अगर आप निर्देशिका से फाइलें हटाते हैं तो सब कुछ बस चला गया है?
mmvsbg

यह यह किया! धन्यवाद,
jstuardo

11

मुझे इसका कारण नहीं पता, लेकिन मेरे मामले में मैंने सिर्फ विदेशी कुंजी जांच को अक्षम और सक्षम करने का हल किया

SET FOREIGN_KEY_CHECKS=0;
SET FOREIGN_KEY_CHECKS=1;

4
धन्यवाद भाई! मेरे मामले में, मुझे Foreign_key_checks को अक्षम करना था और गायब तालिका पर एक चुनिंदा क्वेरी निष्पादित करना था फिर तालिका फिर से सामान्य हो गई। मुझे लगता है कि डेटा पंक्तियों में कुछ विदेशी कुंजी उल्लंघन हैं क्योंकि इस समस्या के होने से पहले मेरे पास एक बाधित कार्यक्रम था।
एगिस्ट ली

पता नहीं क्यों अभी तक ठीक है, लेकिन यह भी मेरी समस्या हल
Miroslav Glamuzina

11

मुझे वही समस्या थी और मैंने 2-3 दिनों तक खोज की, लेकिन मेरे लिए समाधान वास्तव में बेवकूफी थी।

Mysql को पुनरारंभ करें

$ sudo service mysql restart

अब टेबल सुलभ हो गए।


1
पूरी तरह से मेरे लिए काम किया, हालांकि मेरी कमान थोड़ी अलग थी: $ sudo
/usr/local/mysql/support-files/mysql.server

यह अनुमान लगाने की कोशिश करने वाली चीजों की सूची में सबसे ऊपर होना चाहिए। एक शॉट के लायक और मेरे मामले में इसने काम किया।
कोरोस

7

ठीक है यह बहुत बेतुका लग रहा है, लेकिन मुझे हास्य।
मेरे लिए समस्या तब हल हो गई जब मैंने इस पर अपना बयान बदल दिया:

SELECT * FROM `table`

मैंने दो बदलाव किए हैं
।) टेबल का नाम लोअर केस बना दिया - मुझे पता है !!
2.) विशिष्ट बोली प्रतीक का उपयोग किया जाता है = ` : यह आपके TAB के ऊपर की कुंजी है

समाधान बेतुका लगता है, लेकिन यह काम करता है और यह शनिवार की शाम है और मैं सुबह 9 बजे से काम कर रहा हूं - इसलिए मैं इसे ले जाऊंगा :)

सौभाग्य।


1
सिर्फ FYI करें - तालिका MyISAMand नहीं INNO है
प्लानेट अनजान

1
इसके अलावा `एक बैकटिक कहा जाता है
गैरी

7

WAMP को अपग्रेड करने के बाद मुझे यह समस्या थी लेकिन डेटाबेस बैकअप नहीं था।

यह मेरे लिए काम किया:

  1. नई WAMP बंद करो

  2. पुराने WAMP इंस्टॉलेशन से आपको आवश्यक डेटाबेस निर्देशिका और ibdata1 फ़ाइल की प्रतिलिपि बनाएँ

  3. हटाएं ib_logfile0औरib_logfile1

  4. WAMP प्रारंभ करें

अब आपको अपने डेटाबेस का बैकअप बनाने में सक्षम होना चाहिए। हालाँकि आपके सर्वर के फिर से चालू होने के बाद भी आपको समस्याएँ होंगी। इसलिए अब WAMP को पुनर्स्थापित करें और अपने डेटाबेस को आयात करें।


काश लोग यह संकेत देते कि जहाँ वे संदर्भ देते हैं वे फाइलें कहाँ हैं ...
MagentoAaron

यहाँ पठनीय तालिका नहीं होने की mysql docker छवि से मिला। पुष्टि कर सकते हैं कि छवि को रोकना, इन फ़ाइलों को हटाना, और पुनरारंभ करना फिर से पहुंच प्रदान करता है।
एंथनी हार्ले

7

Idb-file की प्रतिलिपि बनाने से पहले टेबलस्पेस को छोड़ने के लिए sql क्वेरी चलाने का प्रयास करें:

ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;

आईडीबी-फाइल कॉपी करें

ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;

MySql को पुनरारंभ करें


आपने मुझे बचा लिया :)
l00k

@ I0pan मैंने उसी चरण की कोशिश की जैसा कि उल्लेख किया गया है। लेकिन बाद में टेबल mydatabase.mytable आयात की शर्तों के बाद; यह दिखा रहा है कि तालिका मौजूद नहीं है। लेकिन यह करता है :(
सैयद असद अब्बास जैदी

5

MySQL को फिर से स्थापित करने के बाद मुझे यही समस्या थी, ऐसा लगता है कि इंस्टॉल के दौरान, कुछ कॉन्फिग्रेशन फाइलें जो इनोबीडी लॉग फाइल के बारे में डेटा स्टोर करती हैं, ये फाइलें ib_logfile * (वे लॉग फाइल सही हैं?), ओवरराइट हो जाती हैं। इस समस्या को हल करने के लिए मैंने अभी ib_logfile * फ़ाइलें हटा दी हैं।


5

मेरे लिए जो काम किया, वह सिर्फ टेबल को गिरा रहा था, भले ही यह मौजूद नहीं था। फिर मैंने तालिका बनाई और पहले से किए गए एक वर्ग डंप से फिर से तैयार की।

तालिका नामों के कुछ मेटाबेस होने चाहिए, और जब तक मैं इसे गिरा नहीं देता, तब तक यह सबसे अधिक संभावना थी।


मैंने एक प्रक्रिया बनाई थी, महसूस किया कि इसे देखने की जरूरत है। इसलिए मैंने कुछ ज़ज़ के साथ प्रक्रिया को अंत में नाम दिया, इसलिए मैं इसे संदर्भ के लिए रख सकता था और उसी नाम का एक दृश्य बनाया। इसे देखने के लिए चयन नहीं किया जा सका, यह त्रुटि मिली। <br> कोड को एक पाठ फ़ाइल में कॉपी किया गया, दृश्य और प्रक्रिया दोनों को हटा दिया गया। दृश्य को फिर से बनाया और सब ठीक हो गया। <br> तो हाँ - सात साल बाद - कुछ किनारे के मामलों में अभी भी कुछ प्रकार की भूत / कैश्ड नाम की कार्रवाई चल रही है।
रोजर क्रुएगर

5

भूत की मेज के साथ एक समान समस्या थी। शुक्र है कि विफलता से पहले एक एसक्यूएल डंप था।

मेरे मामले में, मुझे यह करना था:

  1. MySQL बंद करो
  2. Ib * फ़ाइलों से ले जाएँ /var/mysql को एक बैकअप
  3. हटाएं /var/mysql/{dbname}
  4. MySQL को पुनरारंभ करें
  5. खाली डेटाबेस को फिर से बनाएँ
  6. डंप फ़ाइल को पुनर्स्थापित करें

नोट: डंप फ़ाइल की आवश्यकता है।


मुझे लगता है कि आप का मतलब /var/lib/mysqlहै/var/mysql
knocte

डेटाबेस निर्देशिकाओं को हटाना और बैकअप से पुनर्स्थापित करना केवल एक चीज थी जिसने मेरी मदद की।
Jano

3
  1. डेटाबेस के लिए mysqldump करें:

    mysqldump -u user -ppass dbname > D:\Back-ups\dbname.sql
  2. डेटाबेस पुनर्स्थापित करें

    mysql -u user -ppass dbname < D:\Back-ups\dbname.sql

अब डेटाबेस में सभी तालिकाओं को पूरी तरह से बहाल कर दिया गया था। प्रयत्न..

SELECT * FROM dbname.tablename;

2

मैंने नए कंप्यूटर पर MariaDB स्थापित किया है, डेटा के लिए माईस्क्ल सेवा का नाम बदलकर डेटा रोक दिया है- मैंने अपनी समस्या का हल किया है बस दुर्घटनाग्रस्त माईसकल \ data \ table_folders और ibdata1 को नए इंस्टॉल किए गए mysql डेटा फ़ोल्डर में दुर्घटनाग्रस्त HD MySql डेटा फ़ोल्डर से।

मैंने ib_logfile0 और ib_logfile1 को छोड़ दिया (अन्यथा सर्वर ने सेवा शुरू नहीं की थी)

Mysql सेवा शुरू की।

फिर सर्वर चल रहा है।


2

ऐसा प्रतीत होता है कि इस मुद्दे को अमान्य (भ्रष्ट?) निर्दोष लॉग फ़ाइलों के साथ (कम से कम मेरा और कुछ अन्य में) करना है। सामान्यतया, उन्हें बस फिर से बनाने की आवश्यकता होती है।

यहां समाधान हैं, जिनमें से अधिकांश को mysql के पुनरारंभ की आवश्यकता है।

  • अपनी लॉग फ़ाइलों को फिर से बनाएँ ( हटाएं और पुनः आरंभ करें )
  • अपनी लॉग फ़ाइलों का आकार बदलें (MySql 5.6+ आपके लिए फ़ाइल पुनर्जीवित करेगा)
  • यदि आप किसी प्रकार का डेटा माइग्रेशन कर रहे हैं, तो सुनिश्चित करें कि आपने सही फ़ाइल को सही तरीके से माइग्रेट किया है और इसे अनुमति दी है क्योंकि अन्य पहले ही बता चुके हैं
  • अपने डेटा और लॉग फ़ाइलों की अनुमतियों की जाँच करें, कि mysql दोनों का स्वामी है
  • यदि अन्य सभी विफल रहता है, तो आपको डेटाबेस को फिर से बनाना होगा

2

यहाँ एक और परिदृश्य है (संस्करण उन्नयन) :

मैंने अपने ओएस (मैक ओएस एल कैप्टन) को फिर से स्थापित किया और mysql (होमब्रे का उपयोग करके) का एक नया संस्करण स्थापित किया। स्थापित संस्करण (5.7) मेरे पिछले वाले की तुलना में नया हुआ। फिर मैंने ib * फ़ाइलों सहित तालिकाओं पर प्रतिलिपि बनाई, और सर्वर को पुनरारंभ किया। मैं mysql कार्यक्षेत्र में तालिकाओं को देख सकता था लेकिन जब मैंने कुछ भी चुनने की कोशिश की, तो मुझे "तालिका मौजूद नहीं है"।

उपाय:

  1. mysql सर्वर जैसे mysql.server stopया बंद करोbrew services stop mysql
  2. सर्वर का उपयोग शुरू करें mysqld_safe --user=mysql --datadir=/usr/local/var/mysql/(आवश्यकतानुसार पथ बदलें)
  3. भागो mysql_upgrade -u root -p password(एक और टर्मिनल विंडो में)
  4. चल रहे सर्वर को बंद करें mysqladmin -u root -p password shutdown
  5. सामान्य मोड में सर्वर को पुनरारंभ करें mysql.server startयाbrew services start mysql

प्रासंगिक डॉक्स यहां हैं


वास्तव में बहुत कोशिश की लेकिन यह केवल एक चीज थी जिसने मुझे अपने सभी डेटाबेस के साथ एक नए सर्वर पर ले जाने के बाद बहुत मदद की। धन्यवाद! (उबंटू 16.04)
फाल्क

2

मेरे मामले में, मैंने मेज पर एक ट्रिगर को परिभाषित किया था और फिर तालिका में पंक्ति सम्मिलित करने का प्रयास कर रहा था। ऐसा लगता है, किसी तरह ट्रिगर गलत था, और इसलिए सम्मिलित त्रुटि दे रहा था, तालिका मौजूद नहीं है।


1
यह मेरे लिए काम करता है! प्रत्येक ट्रिगर की जाँच की और पाया कि एक ट्रिगर को सुधारने की आवश्यकता है और यह काम कर गया!
परेश

1

संभव है कि आपके टेबल नाम में एक छिपा हुआ चरित्र हो। जब आप एक शो टेबल करते हैं तो वे दिखाई नहीं देते हैं। क्या आप एक "SHOW CREATE TABLE_ONE" बना सकते हैं और "TABLE_ONE" को पूरा कर सकते हैं और देख सकते हैं कि यह किसी छिपे हुए अक्षर में है या नहीं। इसके अलावा, क्या आपने ड्रापिंग और रिमेकिंग की कोशिश की है। बस यह सुनिश्चित करने के लिए कि विशेषाधिकारों में कुछ भी गलत नहीं है और इसमें कोई छिपा हुआ पात्र नहीं है।


टैब पूरा करने में मदद नहीं करता है और मैं टेबल नहीं बना सकता क्योंकि टेबल "मौजूद नहीं है"। नरक से
जॉनस्मिथ

1

TimeMachine बैकअप आयात के बाद एक ही सटीक समस्या। मेरा समाधान MySQL सर्वर को बंद करने और ib * फाइलों पर रीड-राइट अनुमतियों को ठीक करने के लिए था।


1

एक अन्य जवाब जो मुझे लगता है कि यहां लाने के लायक है (क्योंकि मैं उसी समस्या के साथ यहां आया था और यह मेरे लिए जवाब बन गया):

डबल जांचें कि आपके क्वेरी में तालिका का नाम ठीक उसी तरह वर्तनी है, जैसा डेटाबेस में है।

एक स्पष्ट, नौसिखिया चीज़ की तरह, लेकिन "उपयोगकर्ता" बनाम "उपयोगकर्ता" जैसी चीजें लोगों को ऊपर ले जा सकती हैं और मुझे लगा कि यहां सूची में होना एक उपयोगी उत्तर होगा। :)


1

मेरे मामले में, जब मैं निर्यात की गई sql फ़ाइल आयात कर रहा था, तो मुझे एक त्रुटि मिल रही थी जैसे तालिका बनाने के लिए तालिका मौजूद नहीं है।

मुझे एहसास हुआ कि मेरे डेटाबेस के नाम में एक अंडरस्कोर था और mysql उससे ठीक पहले एक एस्केप चरित्र डाल रहा था।

इसलिए मैंने डेटाबेस के नाम में उस अंडरस्कोर को हटा दिया, सब कुछ काम कर गया।

आशा है कि यह किसी और को भी मदद करता है।


1

मेरी तालिका का नाम बदलकर ' Customers'किसी अग्रणी स्थान के साथ रखा गया था

इसका उद्देश्य

क) प्रश्न टूट गए

ख) तालिका में वह स्थान नहीं दिखाई दिया, जहाँ मेरी सारणी के वर्णानुक्रम में अपेक्षित था, जिसका मेरे आतंक में मतलब था कि मैं इसे देख नहीं पाया!

RENAME TABLE ` Customer` TO `Customer`;

1

मेरे मामले में यह SQLCA.DBParmपैरामीटर था ।

मैंनें इस्तेमाल किया

SQLCA.DBParm = "Databse = "sle_database.text""

लेकिन यह होना चाहिए

SQLCA.DBParm = "Database='" +sle_database.text+ "'"

व्याख्या:

आप तीन तारों को संयोजित करने जा रहे हैं:

 1. Database='              -  "Database='"

 2. (name of the database)  - +sle_database.text+

 3. '                       - "'" (means " ' "  without space)

क्वाटर्म्स में रिक्त स्थान का उपयोग न करें। मेरे सहयोगी जन को धन्यवाद।


1

इसमें जाएं: xampp\mysql\data\dbname
dbname के अंदर tablename.frm और tablename.ibd फाइल है।
इसे निकालें और mysql को पुनरारंभ करें और फिर से प्रयास करें।


1

ibdata1अपने पुराने डेटा निर्देशिका से केवल फ़ाइल की प्रतिलिपि बनाएँ । कॉपी ib_logfile1या ib_logfile0फाइल न करें। इसके कारण MySQL अब शुरू नहीं होगा।


1

आज उसी समस्या को पार कर गया। यह एक mysql "पहचानकर्ता केस संवेदनशीलता" मुद्दा है।

कृपया संबंधित डेटा फ़ाइल की जाँच करें। यह बहुत संभावना है कि फ़ाइल का नाम फ़ाइल सिस्टम पर कम स्थिति में है, लेकिन "शो टेबल" कमांड में सूचीबद्ध तालिका का नाम ऊपरी मामले में है। यदि सिस्टम वेरिएबल " lower_case_table_names" 0 है, तो क्वेरी "टेबल अस्तित्व में नहीं है" वापस आ जाएगी क्योंकि नाम की तुलना संवेदनशील है जब " lower_case_table_names" 0 है।


1

मैं विंडोज़ में एक ही मुद्दा था। Thd डेटा डायरेक्टरी के तहत ib * फाइल्स और mysql डायरेक्टरी को कॉपी करने के अलावा, मुझे my.inl फाइल से भी मिलान करना था।

मेरी पिछली स्थापना की my.ini फ़ाइल में निम्न पंक्ति नहीं थी:

innodb-page-size=65536

लेकिन मेरी नई स्थापना ने किया। संभवतः क्योंकि पुराने इंस्टॉलर में मेरे पास वह विकल्प नहीं था। मैंने इसे हटा दिया और सेवा को पुनः आरंभ किया और तालिकाओं ने उम्मीद के मुताबिक काम किया। संक्षेप में, सुनिश्चित करें कि नई my.ini फ़ाइल पुराने की प्रतिकृति है, जिसमें एकमात्र अपवाद डेटादिर, प्लगइन-डीआईआर और पोर्ट # है, जो आपकी नई स्थापना पर निर्भर करता है।

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