আমি কি পুরো / var / lib / mysql ফোল্ডারটি অন্য সার্ভারে অনুলিপি করতে পারি? (মাইএসকিএল বনাম মারিয়্যাডবি, বিভিন্ন সংস্করণ)


9

আমার মাইএসকিউএল সহ একটি লিনাক্স সিস্টেম (এলএমডিই) ছিল। সিস্টেমটি বেশিরভাগ ডাটাবেসের জন্য ইনোডবি_ফিল_পিটার_সামগ্রী ব্যবহার করে। (সংস্করণ সম্পর্কে নিশ্চিত নন, এলএমডিইতে "সর্বশেষ" যাই হোক না কেন)

আমি এখন মারিয়াডিবি সহ একটি নতুন সিস্টেমে (মাঞ্জারো / আর্চ) আছি।

$ mysql --version
mysql  Ver 15.1 Distrib 10.0.15-MariaDB, for Linux (x86_64) using readline 5.1

পুরাতন সিস্টেমে প্রচুর পরিমাণে বড় ডেটাবেস ছিল যে আমি সত্যিই মাইএসকিএলডম্পের সাথে অনুলিপি না করাই পছন্দ করি। আমি পুরানো সিস্টেম থেকে / var / lib / mysql ফোল্ডারটি অনুলিপি করতে পছন্দ করব।

এটা কি সম্ভব?


হাস্যকর. এখন আমার ঠিক বিপরীত দিকটি দরকার, আর্চ টু মিন্ট (উবুন্টুর উপর ভিত্তি করে) এবং আবার আমি নির্বিকার। আমি "var: / lib / mysql" প্রতিস্থাপনের পরে "শুরু: কাজ শুরু করতে ব্যর্থ" হয়েছি।
ডনকিক্সোট

উত্তর:


20

হ্যা এটা সম্ভব. (প্রশ্নটি লেখার সময় আমি এটি আবিষ্কার করেছি)

  1. নতুন আর্চ সিস্টেমে মারিয়াডিবি ইনস্টল করুন, এটি কাজ করে যাচাই করুন।
    আপনার পরিবর্তনগুলি /etc/mysql/my.cnf এ করুন। উদাহরণস্বরূপ ইনোডোব_ফাইলে_ টেবিল।
    (এটির আরও বেশি কিছু এই প্রশ্নের বাইরে নয়)
  2. sudo systemctl stop mysqld
    (আপনি উভয় সার্ভারে থামতে চান, তবে আমার ক্ষেত্রে অন্যটি ইতিমধ্যে বন্ধ ছিল)
  3. / Var / lib / mysql ফোল্ডারটির নতুন নামকরণ করুন, যেমন / var / lib / _mysql তে।
  4. পুরানো ডেবিয়ান (এলএমডিই) সিস্টেম থেকে পুরানো / var / lib / mysql ফোল্ডারটি অনুলিপি করুন।
  5. ফাইলের মালিকানা মাইএসকিএলে পুনরুদ্ধার করুন: / var / lib / mysql এর প্রত্যেকটির জন্য মাইএসকিএল:
    sudo chown -R mysql:mysql /var/lib/mysql
  6. sudo systemctl start mysqld
    ->Job for mysqld.service failed. See "systemctl status mysqld.service" and "journalctl -xe" for details.
  7. sudo systemctl status mysqld
    -> এটি দেখায় যে পরিষেবাটি চলছে, তবে কিছু জিনিস ভুল হয়ে যাচ্ছে। এটি মাইএসকিএল_আপগ্রেডের জন্য।
  8. mysql_upgrade -u root -p
    মন্তব্য:
    • এটি পুরানো সিস্টেমের মাইএসকিএল রুট পাসওয়ার্ড!
    • অবৈধ ডাটাবেসের নামের কারণে আমাকে / var / lib / mysql থেকে একটি বাকী ফোল্ডার সরিয়ে ফেলতে হয়েছিল।
    • ফাইলটি / var / lib / mysql / mysql_upreg_info লিখনযোগ্য হতে হবে।
    • প্রক্রিয়াটি কিছুটা সময় নিতে পারে।
  9. sudo systemctl restart mysqld

কায়েট: স্পষ্টতই আপনি নিম্ন মাইএসকিউএল সংস্করণে ডাউনগ্রেড করতে পারবেন না। আমি আমার ডাটাবেসগুলি মাইএসকিউএল 5.5 (বা বরং, সংশ্লিষ্ট মারিয়াডিবি) এ স্থানান্তরিত করার চেষ্টা করেছি, এবং সার্ভারটি আরম্ভ হবে না। পরিবর্তে আমাকে মাইএসকিউএল 5.6 ইনস্টল করতে হয়েছিল। (মাইএসকিউএল 5.6 এর সাথে সম্পর্কিত মারিয়াডিবি আমার লিনাক্স ডিস্ট্রোতে উপলভ্য নয়)।


1
এটি চিত্তাকর্ষক বলে মনে হচ্ছে, +1। তবে: কেবল উভয় পক্ষেই মাইএসকিএল থামানো, আরএসসিএন-ইন / ভার / লিবি / মাইএসকিএল, এবং তারপরে শুরু করা কি যথেষ্ট নয়?
পিটারহ - মনিকা পুনরায় ইনস্টল করুন

4
আপনার সচেতন হওয়া উচিত যে সার্ভার কনফিগারেশনটি এই প্রক্রিয়াটির সাথে অনুলিপি করা হয়নি। আপনি কিছু নতুন ডিফল্ট গ্রহণ করতে ইচ্ছুক হলেও আপনি সম্ভবত এটি থেকে কোনও কাস্টমাইজড ভেরিয়েবলের অনুলিপিটিও নিশ্চিত করতে চাইবেন /etc/my.cnf
রিচার্ড

@ রিচার্ড: সত্য। আসলে আমাকে এর কিছু করতে হয়েছিল, আমি ঠিক কী বদলেছি তা মনে নেই। একটি পরিবর্তন হ'ল আমি ইনোডোবি_ফাইলে_ টেবিল সক্ষম করেছিলাম।
ডানকুইক্সোট

@ পিটারহর্বাথ নং, মাইএসকিএল_আপগ্রেড প্রয়োজনীয় ছিল।
ডানকিক্সোট

শুধু বলছিলাম, আমি ঠিক মাঞ্জারো থেকে মিন্টে ফিরে এসেছি। এটি কাজ করেছে, তবে আবার মাইএসকিউএল 5.6 ব্যবহার করা গুরুত্বপূর্ণ ছিল, মারিয়াডিবি 5.5 নয়।
ডনকুইক্সোট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.