এসকিউএল ডাম্প মাইএসকিউএলে আমদানি করার সময় ত্রুটি: অজানা ডাটাবেস / ডাটাবেস তৈরি করতে পারে না


84

আমি কীভাবে এসকিউএল ডাম্প ফাইল আমদানি করব তা নিয়ে আমি বিভ্রান্ত। আমি মাইএসকিউএলে ডেটাবেস তৈরি না করেই ডেটাবেস আমদানি করতে পারি না।

এটি ত্রুটিটি প্রদর্শিত হয় যখন database_nameএখনও তৈরি হয়নি:

username= আসল সার্ভারে ডাটাবেস অ্যাক্সেস সহ কারওর ব্যবহারকারীর নাম।
database_nameমূল সার্ভার থেকে ডাটাবেসের নাম =

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

আমি যদি রুট হিসাবে মাইএসকিউএল এ লগইন করি এবং ডেটাবেস তৈরি করি, 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 username@"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

আমার কীভাবে এসকিউএল ডাম্পফিল আমদানি করার কথা?

উত্তর:


39

এসকিএল ফাইলটি খুলুন এবং বিদ্যমান ডাটাবেস তৈরি করার চেষ্টা করে এমন লাইনটি মন্তব্য করুন।


8
@ ব্রায়ান হুইলক আমি মনে করি আপনার কমান্ডে ডাটাবেস নির্বাচন না করাই একটি আরও ভাল (শিল্পোন্নতযোগ্য) বিকল্প হবে, সুতরাং এটি হয়ে যায়: "মাইএসকিএল-ইউ ব্যবহারকারীর নাম -p -h লোকালহোস্ট <ডাম্পফিল.এসকিএল"। ডাটাবেস_নাম একটি alচ্ছিক পরামিতি। যদি আপনার ডাম্প ফাইলে একটি "তৈরি ডাটাবেস" নির্দেশনা থাকে তবে তা তৈরি হবে।
toni07

এই বিষয়ে কিছুটা ব্যাখ্যা করার জন্য, আমার * .এসকিউএল ফাইলের একেবারে প্রথম লাইনে এটি ছিল: ডেটাবেস না থাকলে `ডাটাবেস_নাম / /! 40100 ডিফল্ট চরিত্র সেট ল্যাটিন 1 * /; এটিকে পরিবর্তন (নোট / * শুরুতে): / * ডাটাবেস না থাকলে ডাটাবেস_নেম / * তৈরি করুন 40100 ডিফল্ট চরিত্র সেট ল্যাটিন 1 * / /; কার্যকরভাবে কমান্ডটি মন্তব্য করে এবং ইমপোর্টটি কাজ করা উচিত। আপনি কেবল ডাটাবেসের ভিতরে সক্রিয় থাকার কথা মনে রাখবেন যে আপনি টেবিলগুলি সারণিতে সন্নিবেশ করানোর জন্য আমদানি করতে চান, অন্যথায় আপনি কোনও গোলমাল করতে পারেন!
ntk4

49

এটি মাইএসকিউএল-এর একটি পরিচিত বাগ

বাগ 42996
বাগ 40477

আপনি দেখতে পাচ্ছেন যে এটি ২০০৮ সাল থেকে একটি পরিচিত সমস্যা এবং তারা এখনও এটি স্থির করেনি !!!

ওয়ার্ক অ্যারাউন্ড
আপনাকে প্রথমে আমদানি করার জন্য ডাটাবেস তৈরি করতে হবে। এটি কোনও টেবিলের প্রয়োজন নেই। তারপরে আপনি আপনার ডাটাবেস আমদানি করতে পারেন।

  1. প্রথমে আপনার মাইএসকিউএল কমান্ড লাইনটি শুরু করুন (আপনার প্রয়োজন হলে ব্যবহারকারীর নাম এবং পাসওয়ার্ড প্রয়োগ করুন)
    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

আপনি আমদানি করতে চান এমন কোনও মাইএসকিউএল সার্ভারের জন্য আপনি কোনও আইপি বা ডোমেন দিয়ে লোকালহোস্ট প্রতিস্থাপন করতে পারেন। মাইএসকিএল প্রম্পটে DROP কমান্ডের কারণ নিশ্চিত হওয়া নিশ্চিত যে আমরা একটি খালি এবং পরিষ্কার ডাটাবেস দিয়ে শুরু করেছি।


4
আমি উত্তর প্রশংসা করি। এটি এখন ২০১২ এবং এটি উপস্থিত রয়েছে যে বাগটি এখনও রয়েছে, কারণ আমি আমার উত্তরটি ব্যবহার করে আমার ওয়ার্ডপ্রেস ডাটাবেকে নতুন সার্ভারে পুনরুদ্ধার করলাম (তবে নোট করুন, আপনার মাইএসকিউএল প্রশংসাপত্রগুলি ''; '; ;-)
কার্ল

12

দেখে মনে হচ্ছে আপনার ডাটাবেস ডাম্পে ডেটাবেস তৈরির জন্য তথ্য অন্তর্ভুক্ত রয়েছে। সুতরাং মাইএসকিউএল কমান্ড লাইনটিকে একটি ডাটাবেসের নাম দেবেন না। এটি নতুন ডাটাবেস তৈরি করবে এবং আমদানি করতে এটিতে স্যুইচ করবে।


4

আপনি যদি সরাসরি অ্যাডমিন বা সিপ্যানেলে আপনার ডাটাবেস তৈরি করেন তবে আপনাকে অবশ্যই আপনার এসকিএলটি নোটপ্যাড বা নোটপ্যাড ++ দিয়ে সম্পাদনা করতে হবে এবং লাইন 22 এ CREATE DATABASEকমান্ডটি পরিবর্তন করতে হবেCREATE DATABASE IF NOT EXISTS


0

আমি কমান্ড লাইনটি ব্যবহার করে নিজেই ডেটাবেস তৈরি করি। তারপরে আবার আমদানির চেষ্টা করুন, এটি কাজ করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.