লিনাক্সে একটি ডিফল্ট মাইএসকিউএল/মারিয়াডিবি ডেটা ডিরেক্টরি কীভাবে পরিবর্তন করবেন


একটি সেন্টোস/আরএইচএল 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 এবং উবুন্টু/ডেবিয়ান ডিস্ট্রিবিউশনে চলমান একটি মাইএসকিউএল বা মারিয়াডিবি সার্ভারে ডেটা ডিরেক্টরি পরিবর্তন করতে হবে তা নিয়ে আলোচনা করেছি।

এই নিবন্ধটি সম্পর্কে আপনার কোনও প্রশ্ন বা মন্তব্য আছে? নীচে ফর্মটি ব্যবহার করে আমাদের নির্দ্বিধায় জানান - আমরা আপনার কাছ থেকে শুনে সর্বদা আনন্দিত!