আমি কীভাবে মাইএসকিউএল ডেটা ফাইলগুলিকে বিভিন্ন পার্টিশনে স্থানান্তর করব?


27

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

20GB  -> /     (root)
180GB -> /home 

আমি প্রচুর ডেভলপমেন্ট কাজ করি তাই আমার /var/wwwফোল্ডারটি সিলেকিং করে আছে /home/valorin/workspace

তবে আমি আমার মাইএসকিউএল ডেটা ফাইলগুলির সাথে এটিও করতে চাই, যেহেতু আমি বিরক্ত হচ্ছি যে প্রতিবার আমি আমার মেশিনটি পুনরায় ইনস্টল করব আমাকে একটি পূর্ণ এসকিউএলডাম্প করা উচিত এবং তারপরে আরও কাজ করার আগে সমস্ত ডিবি পুনরুদ্ধার করা দরকার।

মাইএসকিউএল না ভেঙে যাওয়ার সর্বোত্তম উপায় কী?

উত্তর:


30

ঠিক আছে, আসলে এই প্রশ্নের একটি সম্ভাব্য উবুন্টু নির্দিষ্ট উত্তর আছে।

Gergoes উল্লেখ লিঙ্ক, এই পরিবর্তন সম্পর্কে মূলত /etc/mysql/my.cnf জন্য এবং একটি নতুন মান সেট datadir = মধ্যে [mysqld] অধ্যায়। এখনও অবধি উত্তর অনির্দিষ্ট অংশ।

ধরে নিই যে আপনি উবুন্টুর কিছুটা আধুনিক সংস্করণ চালাচ্ছেন আপনি সম্ভবত প্রয়োগের মোডে / usr / sbin / mysqld এর প্রোফাইল সহ ডিফল্টরূপে AppArmor ইনস্টল করতে পারেন । এই ডিফল্ট প্রোফাইলটি সম্ভবত আপনার নতুন ডেটাডির গ্রহণ করবে না।

আসুন ধরে নেওয়া যাক আপনার নতুন ডেটাডিরটি / হোম / ডেটা / মাইএসকিএল হবে ।

আপনি যদি ফাইলটি খুলেন /etc/apparmor.d/usr.sbin.mysqld খুলেন তবে নিয়মের মধ্যে এই দুটি লাইন পাবেন।

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

আমাদের উপরের উদাহরণটি ধরে নিলে, তাদের প্রতিস্থাপন করতে হবে বা (সম্ভবত ভাল) এই দুটি লাইন দ্বারা পরিপূরক হতে হবে।

/home/data/mysql/ r,
/home/data/mysql/** rwk,

আমরা আমাদের মাইএসকিউএল সার্ভারটি নতুন ডেটাডির দিয়ে শুরু করার আগে, আমাদের স্পষ্টতই আমাদের নতুন অ্যাপমর্ম প্রোফাইলটি পুনরায় লোড করতে হবে।

$ sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld

এটি নেটি (11.4) এ কাজ করবে বলে মনে হচ্ছে না। এটিতে আমার পরিবর্তিত ডেটা ডিয়ার পড়তে আমাকে / usr / sbin / mysqld ব্যবহার করে মাইএসকিউএল শুরু করতে হয়েছিল। অন্যথায়, এটি আমার পুরানো ডেটা পড়তে অবিরত ir এটি আমার পক্ষে একটি ত্রুটি হতে পারে।
থ্রি-কাপ

উপরেরগুলি আমার জন্য উবুন্টু 12.04 (যথাযথ) সমস্যার সমাধান করতে ব্যর্থ হয়েছে। আমি জানতে পেরেছি যে একটির জন্য "উরফ / ভার / লিবি / মাইএসকিএল / -> / হোম / ডেটা / মাইএসকিএল /," এই জায়গায় রেখে আমি একটি লাইন অন্তর্ভুক্ত করতে /etc/apparmor.d/tunables/alias ফাইলটি সম্পাদনা করতে হবে I অন্যান্য অ্যাপআর্মার ফাইলে কোনও পরিবর্তন দরকার হয়নি। এটি "/etc/init.d/apparmor পুনঃসূচনা" এবং মাইএসকিউএল "পুনঃসূচনা mysql" এর সাথে অ্যাপআর্মার পুনরায় চালু করার সাথে সাথে কাজ করে।
মাক

আমি মনে করি যে নতুন ফোল্ডারটি ব্যবহার করা হবে তার জন্য নির্দিষ্ট অনুমতি সেট করা দরকার। যে কেউ কি তারা জানেন? আমি জানি যে মাইএসকিএল ইনস্টলেশনটি একটি মাইএসকিএল ব্যবহারকারী তৈরি করে ... এবং এটি ডিফল্টরূপে আমি / var / lib / mysql ফোল্ডারের সামগ্রীগুলি অ্যাক্সেস করতে পারি না।
নালভক্সপপুলি

4

এই ব্যবহারটি কীভাবে সমাধান করা যায় সে সম্পর্কে সুপার ব্যবহারকারীর এক ধাপে ধাপে নির্দেশ রয়েছে instructions

একই জিনিসটি করার জন্য এখানে নির্দেশের অন্য সেট রয়েছে http://www.ubuntugeek.com/how-to- بدل-the-mysql-data- default-directory.html

এখানে এটি পুনরায় পোস্ট করা হয়। আপনি যদি সুপার ব্যবহারকারীতে পারেন তবে মূল ভোট দিন।

অনুমতিগুলি সম্পর্কে কিছু সাধারণ বিভ্রান্তির পরে আমি বুঝতে পেরেছিলাম যে সমস্যাটি আমার পক্ষে অনুমতি এবং পাথগুলি সঠিক ছিল না তবে অ্যাপঅর্মারটি মাইএসকিএল-কে নতুন জায়গায় পড়া এবং লেখার বিষয়ে বাধা দিচ্ছিল।

এটি আমার সমাধান:

প্রথমে মাইএসকিউএল বন্ধ করুন যাতে আপনি বিড়বিড় করার সময় অদ্ভুত কিছু না ঘটে:

$ sudo stop mysql

তারপরে সমস্ত ডাটাবেস ডিরেক্টরি তাদের নতুন বাড়িতে সরিয়ে নিন:

$ sudo mv /var/lib/mysql/<all folders> /new-mysql-dir/

ফাইলগুলি সরান না, এগুলি মাইএসকিএল দ্বারা উত্পন্ন হবে, কেবল ফোল্ডারগুলি সরান (যা ডাটাবেসগুলি হয়)।

তারপরে মৃদুভাবে AppArmor কে মাইএসকিএলকে নতুন ফোল্ডারটি ব্যবহার করার জন্য বলুন:

$ sudo vim /etc/apparmor.d/usr.sbin.mysqld

লাইন যুক্ত করুন:

/new-mysql-dir/ r,
/new-mysql-dir/** rwk,

তারপরে মাইএসকিএলকে বলুন যে ডেটাডির সরে গেছে:

$ sudo vim /etc/mysql/my.cnf 

লাইন পরিবর্তন:

datadir=/var/lib/mysql

করুন:

datadir=/my-new-db-dir/

দ্রষ্টব্য: আপনার ডাটাবেস সেটআপের উপর নির্ভর করে আপনাকে ইনডোডাব-ডেটা-হোম-ডির ইত্যাদিও পরিবর্তন করতে হবে।

তারপরে নতুন সেটিংস পড়তে অ্যাপআর্মার পুনরায় চালু করুন:

$ sudo /etc/init.d/apparmor restart

এবং নতুন ডাটাডির ব্যবহার করে আবার মাইএসকিউএল শুরু করুন:

$ sudo start mysql

আশাকরি এটা সাহায্য করবে!


0

এটি সত্যই উবুন্টু নির্দিষ্ট নয়। : তা সত্ত্বেও, এখানে এমন কিছু বিষয় যা শক্তি সাহায্যের হয় http://developer.spikesource.com/wiki/index.php/How_to_change_the_mysql_database_location


আমি যে অংশটি কাজ করতে পারছিলাম না সেভাবে নির্দেশিকা সত্যই সহায়তা করেনি এটি ছিল অ্যাপআর্মার এবং আপনার পোস্টটি কেবল এটি পাস করার ক্ষেত্রে ব্যাখ্যা করেছিল। এছাড়াও, উবুন্টু নির্দিষ্ট প্রশ্নের জন্য এই সাইটটি কি? সাহায্যের সন্ধানকারী নতুন ব্যবহারকারীরা কীভাবে জানতে পারবেন যে উবুন্টু-নির্দিষ্ট কি না এবং যেখানে তারা জেনেরিক তাদের জিজ্ঞাসা করা উচিত?
স্টিফেন আরসি

ওয়েবসাইট অনুপলব্ধ।
হেনজি 20'14

0

যারা আমার পছন্দ করেন ভার্চুয়ালবক্সের সাথে এবং মাইএসকিউএল ডেটাডিরকে হোস্ট সিস্টেমের একটি ভাগ করা ফোল্ডারে স্থানান্তরিত করার জন্য, http://vacilando.org/en/article/moving-mysql-data-files-virtualbox এ টিউটোরিয়ালটি অনুসরণ করুন -শেয়ার করা ফোল্ডারের


-1

এটি ঠিক তেমন কাজ করবে না।

ব্যবহারকারী মাইএসকিএল -কে নতুন দিরের কাছে লেখার অধিকার থাকতে হবে:

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