উবুন্টু সার্ভার 10.04-এ মাইএসকিউএল ডেটা ডিরেক্টরি পরিবর্তন করা হচ্ছে


9

উবুন্টু সার্ভার 10.04-তে ডেটা ডিরেক্টরি পরিবর্তন করার চেষ্টা করার সময় আমি নিম্নলিখিত ত্রুটিটি পেয়েছি।

100809 19:33:00 [Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
100809 19:33:00 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
100809 19:33:00  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.

2
... এবং আপনার প্রশ্ন? মনে রাখবেন যে আপনি যদি কেবল ফোল্ডারগুলির বিষয়বস্তু এবং কোনও ফাইল না সরান তবে আপনি সমস্ত InnoDB টেবিলের সামগ্রী হারাবেন।
ববিনস করুন

কোন প্রশ্ন / চামচ আছে। এটিকে আশেপাশের লোকদের কাছে আকর্ষণীয় মনে হতে পারে। InnoDB টেবিল সামগ্রী সম্পর্কে ভাল পয়েন্ট!

2
আপনি যদি নিজের প্রশ্নটি জিজ্ঞাসা করতে এবং উত্তর দিতে চান তবে এটি ভাল, তবে সময় মতো একটি প্রশ্ন জিজ্ঞাসা করুন এবং উত্তর হিসাবে আপনার উত্তর সরবরাহ করুন।
জোড়াদেচে

উত্তর:


8

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

এটিই তার সমাধান:

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

$ sudo stop mysql

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

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

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

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

$ sudo vim /etc/apparmor.d/usr.sbin.mysqld
  >> add lines
     /new-mysql-dir/ r,
     /new-mysql-dir/** rwk,

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

$ sudo vim /etc/mysql/my.cnf 
  >> change the line
     datadir=/var/lib/mysql
  >> to
     datadir=/my-new-db-dir/

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

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

$ sudo /etc/init.d/apparmor restart

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

$ sudo start mysql

2
আপনি ফাইলগুলি সরানোর পরিবর্তে ফাইলগুলিকে তাদের নতুন অবস্থানে সংযুক্ত করে ডাটাবেসটি চালু রাখতে এবং চালিয়ে রাখতে পারেন ... অবশ্যই যদি দুটি ডাটাডির অবস্থান পৃথক পার্টিশনে না থাকে।
সিপিবিলে

আপনি ডিরেক্টরি ব্যবহারের ক্ষেত্রে কেবল ডিরেক্টরিগুলি সরানোর নির্দেশ সঠিক নয়। সেক্ষেত্রে আপনাকে ইনসোডাব ডেটা এবং লগ ফাইলগুলি পাশাপাশি স্থানান্তর করতে হবে (আইবডাটা *, আইবি_লগফাইল *)।
ইলিশ

আমার মত অসতর্ক অন্যের জন্য একটি নোট। অ্যাপআর্মার কনফিগারেশনের পথে আপনার পিছনে স্ল্যাশ /new-mysql-dir/ rথাকতে হবে অন্যথায় এটি অস্বীকার করা হবে। বুনিয়াদি লিনাক্স স্টাফ তবে আমি কখনই পিছনে থাকা স্ল্যাশ সঠিক পেতে পারি না।
জেফ

আমি তখনও অ্যাপআর্মার দ্বারা প্রত্যাখ্যান হচ্ছিলাম। এই থ্রেডটি এটিকে চূড়ান্ত প্রতিবন্ধকতা তৈরি করতে সহায়তা করেছিল।
জেফ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.