2009-05-13 11 views
77

मैं उलझन में हूं कि SQL डंप फ़ाइल कैसे आयात करें। मैं MySQL में पहले डेटाबेस बनाने के बिना डेटाबेस आयात नहीं कर सकता।MySQL में SQL डंप आयात करने में त्रुटि: अज्ञात डेटाबेस/डेटाबेस नहीं बना सकता

यह जब database_name अभी तक नहीं बनाया गया है त्रुटि प्रदर्शित है:

username = मूल सर्वर पर डेटाबेस के लिए उपयोग के साथ किसी के उपयोगकर्ता नाम।
database_name = मूल सर्वर

$ mysql -u username -p -h localhost database_name < dumpfile.sql 
Enter password: 
ERROR 1049 (42000): Unknown database 'database_name' 

अगर मैं रूट के रूप में MySQL में प्रवेश करें और डेटाबेस बनाने से डेटाबेस का नाम, database_name

mysql -u root 
create database database_name; 
create user username;# same username as the user from the database I got the dump from. 
grant all privileges on database_name.* to [email protected]"localhost" identified by 'password'; 
exit mysql 

तो एसक्यूएल डंप फिर से आयात करने का प्रयास:

$ mysql -u username -p database_name < dumpfile.sql 
Enter password: 
ERROR 1007 (HY000) at line 21: Can't create database 'database_name'; database exists 

मुझे SQL डंपफ़ाइल आयात करने के लिए कैसे माना जाता है?

उत्तर

38

एसक्यूएल फ़ाइल खोलें और मौजूदा डेटाबेस को बनाने की कोशिश करने वाली लाइन पर टिप्पणी करें।

+5

@ ब्रायनहेलॉक मुझे लगता है कि एक बेहतर (औद्योगिकीकरण) विकल्प आपके आदेश में डेटाबेस का चयन नहीं करेगा, इसलिए यह हो जाता है: "mysql -u उपयोगकर्ता नाम -पी -h localhost toni07

9

ऐसा लगता है कि आपके डेटाबेस डंप में डेटाबेस बनाने के लिए जानकारी शामिल है। तो MySQL कमांड लाइन को डेटाबेस नाम न दें। यह नया डेटाबेस बनाएगा और आयात करने के लिए स्विच करेगा।

43

यह ज्ञात बग MySQL पर ज्ञात है।

bug 42996
bug 40477

आप देख सकते हैं इस 2008 के बाद से एक ज्ञात मुद्दा रहा है और वे अभी तक यह तय नहीं किया है !!!

कार्यों के बीच
आप पहली बार आयात करने के लिए डेटाबेस बनाने की जरूरत है। इसे किसी भी टेबल की आवश्यकता नहीं है। फिर आप अपना डेटाबेस आयात कर सकते हैं।

  1. पहली बार अपने MySQL कमांड लाइन (उपयोगकर्ता नाम और पासवर्ड लागू अगर आप की जरूरत है)
    C:\>mysql -u user -p

  2. अपने डेटाबेस और बाहर निकलने

    mysql> DROP DATABASE database; 
    mysql> CREATE DATABASE database; 
    mysql> Exit 
    
  3. से अपने चयनित डेटाबेस आयात बनाएं शुरू डंप फ़ाइल
    C:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql

आप किसी भी MySQL सर्वर के लिए आईपी या डोमेन के साथ स्थानीयहोस्ट को प्रतिस्थापित कर सकते हैं, जिसे आप आयात करना चाहते हैं। mysql प्रॉम्प्ट में DROP कमांड का कारण यह सुनिश्चित करना है कि हम एक खाली और साफ डेटाबेस से शुरू करें।

+2

मैं उत्तर की सराहना करता हूं। यह अब 2012 है और ऐसा प्रतीत होता है कि बग अभी भी वहां है, क्योंकि मैंने अपना वर्डप्रेस डाटाबेस एक नए सर्वर पर बहाल करने के लिए आपका जवाब इस्तेमाल किया है (नोट करें, हालांकि, आपका MySQL प्रशंसा समाप्त हो रहा है ';' .-) – Karl

3

आप सीधे व्यवस्थापक या cpanel में अपने डेटाबेस बनाने हैं, तो आप नोटपैड या नोटपैड के साथ ++ अपने एसक्यूएल को संपादित करने और अपने आप को line22

0

मैं डेटाबेस बनाने में CREATE DATABASE IF NOT EXISTS करने के लिए CREATE DATABASE आदेश को बदलने के आदेश पंक्ति का उपयोग कर करना होगा। फिर फिर से आयात करने का प्रयास करें, यह काम करता है।

संबंधित मुद्दे