Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

त्रुटि 1005 (HY000):तालिका x नहीं बना सकता (त्रुटि:-1)

यह एक पुराना प्रश्न है, लेकिन मुझे यह आज ही मिल गया है, और एक समाधान मिल गया है (और हाँ errno =-1 के साथ)।

हमारी तालिका InnoDB है और इसे हर कुछ घंटों में बनाया और नष्ट कर दिया गया था। हमने हाल ही में उस मास्टर का अनुसरण करने के लिए एक गुलाम सर्वर शुरू किया था। हम "innodb_file_per_table" विकल्प का भी उपयोग करते हैं।

त्रुटि केवल दास पर होगी, स्वामी पर नहीं। समस्या यह थी कि हमने हाल ही में कुछ घंटे पहले rsync का उपयोग करके उस दास को स्वामी के साथ सिंक्रनाइज़ किया था।

Rsync ने तालिका फ़ाइल की प्रतिलिपि बनाई, लेकिन फिर इस बीच मास्टर द्वारा हटा दिया गया था, क्योंकि यह एक अस्थायी तालिका थी। इसलिए .idb फ़ाइल दास में मौजूद थी, लेकिन अब मास्टर में नहीं थी।

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

मेरे मामले में, समाधान किसी अन्य फ़ोल्डर में .idb फ़ाइल को हटाना था (निश्चित रूप से पहले बैकअप प्रतिलिपि के साथ)।

उसके बाद, डेटाबेस तब हमें तालिका बनाने की अनुमति देगा, और दास फिर से मास्टर का अनुसरण करेगा

ऐसा करने का एक बेहतर तरीका है कि rsync मास्टर से चली गई किसी भी पुरानी फ़ाइलों को हटाने के लिए --delete विकल्प का उपयोग करना होगा।

वैसे भी - हो सकता है कि आपके पास वह सटीक स्थिति न हो जैसा मैंने वर्णन किया है, लेकिन यह केवल एक पुरानी फ़ाइल हो सकती है जो किसी कारण या किसी अन्य कारण से वहां छोड़ी गई है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल डेटाबेस से डेटा पुनर्प्राप्त करें और टेबल में प्रदर्शित करें - चेक किए गए चेकबॉक्स के अनुसार कुछ डेटा प्रदर्शित करें

  2. चर के साथ डेटा इनफाइल लोड करें

  3. चर का उपयोग करते समय किसी क्वेरी में ग्रुप बाय का उपयोग कैसे करें

  4. MySQL में मनमाने ढंग से कैसे बिन करें?

  5. mysql ट्रिगर संग्रहीत ट्रिगर पहले से ही कथन द्वारा उपयोग किया जाता है जो संग्रहीत ट्रिगर को लागू करता है