না mysqldump -all-databases
সমস্ত বস্তু অন্তর্ভুক্ত?
আমাকে সমস্ত ডাটাবেস নতুন সার্ভারে স্থানান্তর করতে হবে।
না mysqldump -all-databases
সমস্ত বস্তু অন্তর্ভুক্ত?
আমাকে সমস্ত ডাটাবেস নতুন সার্ভারে স্থানান্তর করতে হবে।
উত্তর:
কোনও মাইকিকিল্ডাম্প-সমস্ত-ডেটাবেজে সমস্ত বস্তু অন্তর্ভুক্ত থাকে না
mysqldump --help
-A, --all-databases Dump all the databases. This will be same as --databases
with all databases selected.
সুতরাং - সমস্ত ডাটাবেসযুক্ত মাইএসকিএলডাম্প কেবলমাত্র সমস্ত ডাটাবেস ডাম্প করে।
একটি নতুন সার্ভারে সমস্ত ডাটাবেস স্থানান্তর করতে, আপনার একটি সম্পূর্ণ ব্যাকআপ নেওয়া উচিত:
mysqldump একটি সম্পূর্ণ mysql উদাহরণ
mysqldump -h... -u... -p... --events --routines --triggers --all-databases > MySQLData.sql
ত্রুটিটি হ'ল এইভাবে তৈরি হওয়া ব্যাকআপগুলি কেবল মাইএসকিএল-র একই বড় রিলিজ সংস্করণে পুনরায় লোড করা যেতে পারে যা মাইএসকিএলডম্পটি তৈরি করেছিল। অন্য কথায়, একটি মাইএসকিউএল 5.0 ডাটাবেস থেকে একটি মাইএসকিএলডাম - সমস্ত ডেটাবেস 5.1 বা 5.5 এ লোড করা যায় না। কারন ? বড় রিলিজের মধ্যে মাইএসকিএল স্কিমা সম্পূর্ণ আলাদা।
পাঠযোগ্য এবং আরও বহনযোগ্য এমন ব্যবহারকারীদের জন্য এসকিউএল অনুদানগুলি ডাম্প করার সাধারণ উপায় এখানে
mysql -h... -u... -p... --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -h... -u... -p... --skip-column-names -A | sed 's/$/;/g' > MySQLGrants.sql
রোল্যান্ডোমাইএসকিউএলডিবিএর উত্তরটি দেখুন কীভাবে আমি একটি বৃহত ডাটাবেসের একটি মাইএসকিল্ডম্পটিকে অনুকূল করতে পারি?
--single-transaction
ব্যাকআপ চলার সময় যদি মাইআইএসএএম টেবিলগুলি লিখিত থাকে তবে একটি ধারাবাহিক ব্যাকআপ তৈরি করবে না। তবে --single-transaction
আপনি যদি সমস্ত ইনোডিবি ব্যবহার করেন এবং mysqldump
রান করার সময় ব্লক করা এড়াতে চান তবে যুক্ত করা ভাল ধারণা idea
--events
যা ছাড়াও প্রয়োজন হয়--routines
এবং--triggers
এবং আপনি বাদ দেওয়া--single-transaction
অকারণে টেবিল লক এড়ানো।