লিনাক্সে একটি ডিফল্ট মাইএসকিউএল/মারিয়াডিবি ডেটা ডিরেক্টরি কীভাবে পরিবর্তন করবেন
একটি সেন্টোস/আরএইচএল 7 সার্ভারে একটি ল্যাম্প স্ট্যাকের উপাদানগুলি ইনস্টল করার পরে, আপনি কিছু করতে চান এমন কয়েকটি জিনিস রয়েছে।
তাদের মধ্যে কিছু অ্যাপাচি এবং মাইএসকিউএল/মারিয়াডিবির সুরক্ষা বাড়ানোর সাথে করতে হবে, অন্যরা আমাদের সেটআপ বা প্রয়োজন অনুসারে প্রযোজ্য বা নাও হতে পারে।
উদাহরণস্বরূপ, ডাটাবেস সার্ভারের প্রত্যাশিত ব্যবহারের ভিত্তিতে আমরা ডিফল্ট ডেটা ডিরেক্টরিটি (/var/lib/mysql
) অন্য কোনও জায়গায় পরিবর্তন করতে পারি। এই ক্ষেত্রে যখন উচ্চ ব্যবহারের কারণে এই জাতীয় ডিরেক্টরি বৃদ্ধি পাওয়ার আশা করা হয়।
অন্যথায়, /var
সঞ্চিত ফাইল সিস্টেমটি এক পর্যায়ে ধসে পড়তে পারে যার ফলে পুরো সিস্টেমটি ব্যর্থ হয়। যখন আমাদের একটি ডেডিকেটেড নেটওয়ার্ক শেয়ার থাকে তখন আমরা আমাদের প্রকৃত ডেটা সঞ্চয় করতে ব্যবহার করতে চাইলে ডিফল্ট ডিরেক্টরিটি পরিবর্তন করা হয় এমন আরেকটি পরিস্থিতি।
এই কারণে, এই নিবন্ধে, আমরা কীভাবে সেন্টোস/আরএইচএল 7 সার্ভার এবং উবুন্টু/ডেবিয়ান ডিস্ট্রিবিউশনে ডিফল্ট মাইএসকিউএল/মারিয়াডিবি ডেটা ডিরেক্টরিকে একটি ভিন্ন পথে পরিবর্তন করব তা ব্যাখ্যা করব।
যদিও আমরা মারিয়াডিবি ব্যবহার করব, ধারণাটি ব্যাখ্যা করা হয়েছে এবং এই নিবন্ধে গৃহীত পদক্ষেপগুলি মাইএসকিউএল এবং মারিয়াডিবি উভয় ক্ষেত্রেই প্রযোজ্য যদি না অন্যথায় উল্লেখ করা হয়।
ডিফল্ট মাইএসকিউএল/মারিয়াডিবি ডেটা ডিরেক্টরি পরিবর্তন করা হচ্ছে
দ্রষ্টব্য: আমরা ধরে নিতে যাচ্ছি যে আমাদের নতুন ডেটা ডিরেক্টরিটি /mnt/mysql-data
c এই ডিরেক্টরিটি mysql: mysql
এর মালিকানাধীন হওয়া উচিত তা লক্ষ করা জরুরী।
# mkdir /mnt/mysql-data # chown -R mysql:mysql /mnt/mysql-data
আপনার সুবিধার জন্য, আমরা প্রক্রিয়াটি 5 টি অনুসরণযোগ্য অনুসরণের ধাপগুলিতে ভাগ করেছি:
শুরু করার জন্য, নিম্নলিখিত কমান্ডটি ব্যবহার করে বর্তমান তথ্য ডিরেক্টরিটি সনাক্ত করা উপযুক্ত এবং ভাল। এটি কেবল /var/lib/mysql
হিসাবে ধরে নেবেন না কারণ এটি অতীতে পরিবর্তিত হতে পারে।
# mysql -u root -p -e "SELECT @@datadir;"
আপনি মাইএসকিউএল পাসওয়ার্ড প্রবেশ করার পরে, আউটপুট অনুরূপ হওয়া উচিত।
ডেটা দুর্নীতি এড়াতে, পরিষেবাটি যদি এগিয়ে যাওয়ার আগে চলমান থাকে তবে পরিষেবাটি বন্ধ করুন। এটি করার জন্য সিস্টেমেড সুপরিচিত কমান্ডগুলি ব্যবহার করুন:
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
যদি পরিষেবাটি নীচে আনা হয় তবে শেষ কমান্ডের আউটপুট নিম্নরূপ হওয়া উচিত:
তারপরে আসল অনুমতি এবং টাইমস্ট্যাম্পগুলি সংরক্ষণ করে /var/lib/mysql
এর << কোড/ এর বিষয়বস্তু অনুলিপি করে অনুলিপি করুন:
# cp -R -p /var/lib/mysql/* /mnt/mysql-data
নতুন ডেটা ডিরেক্টরি নির্দেশ করতে কনফিগারেশন ফাইল ( my.cnf
) সম্পাদনা করুন (/mnt/mysql-data
এই ক্ষেত্রে)।
# vi /etc/my.cnf OR # vi /etc/mysql/my.cnf
[mysqld]
এবং [ক্লায়েন্ট]
বিভাগগুলি সন্ধান করুন এবং নিম্নলিখিত পরিবর্তনগুলি করুন:
Under [mysqld]: datadir=/mnt/mysql-data socket=/mnt/mysql-data/mysql.sock Under [client]: port=3306 socket=/mnt/mysql-data/mysql.sock
পরিবর্তনগুলি সংরক্ষণ করুন এবং তারপরে পরবর্তী পদক্ষেপে এগিয়ে যান।
এই পদক্ষেপটি কেবলমাত্র RHEL/CentOS এবং এর ডেরাইভেটিভগুলির জন্য প্রযোজ্য।
মারিয়াডিবি পুনরায় চালু করার আগে /mnt/mysql-data
এ সেলইনাক্স সুরক্ষা প্রসঙ্গ যুক্ত করুন।
# semanage fcontext -a -t mysqld_db_t "/mnt/mysql-data(/.*)?" # restorecon -R /mnt/mysql-data
এরপরে মাইএসকিউএল পরিষেবাটি পুনরায় চালু করুন।
------------- On SystemD ------------- # systemctl stop mariadb # systemctl is-active mariadb ------------- On SysVInit ------------- # service mysqld stop # service mysqld status OR # service mysql stop # service mysql status
এখন, নতুন ডেটা ডিরেক্টরিটির অবস্থান যাচাই করতে পদক্ষেপ 1 এর মতো একই কমান্ডটি ব্যবহার করুন:
# mysql -u root -p -e "SELECT @@datadir;"
মারিয়াডিবিতে লগইন করুন, একটি নতুন ডাটাবেস তৈরি করুন এবং তারপরে /mnt/mysql-data
চেক করুন:
# mysql -u root -p -e "CREATE DATABASE tecmint;"
অভিনন্দন! আপনি মাইএসকিউএল বা মারিয়াডিবির জন্য ডেটা ডিরেক্টরিটি সফলভাবে পরিবর্তন করেছেন।
এই পোস্টে, আমরা কীভাবে সেন্টোস/আরএইচএল 7 এবং উবুন্টু/ডেবিয়ান ডিস্ট্রিবিউশনে চলমান একটি মাইএসকিউএল বা মারিয়াডিবি সার্ভারে ডেটা ডিরেক্টরি পরিবর্তন করতে হবে তা নিয়ে আলোচনা করেছি।
এই নিবন্ধটি সম্পর্কে আপনার কোনও প্রশ্ন বা মন্তব্য আছে? নীচে ফর্মটি ব্যবহার করে আমাদের নির্দ্বিধায় জানান - আমরা আপনার কাছ থেকে শুনে সর্বদা আনন্দিত!