MySQL ডেটাবেস সার্ভারের কনফিগারেশন ফাইল my.cnf (বা my.ini উইন্ডোজ সিস্টেমে) এর মাধ্যমে সম্পাদিত হয়। এই ফাইলটি সার্ভারের সমস্ত কনফিগারেশন সেটিংস ধারণ করে, যেমন সার্ভারের কার্যকারিতা, নিরাপত্তা, পারফরমেন্স অপটিমাইজেশন এবং অন্যান্য গুরুত্বপূর্ণ বৈশিষ্ট্য।
MySQL এর my.cnf ফাইলটি সাধারণত সার্ভারের ইনস্টলেশন ডিরেক্টরি বা /etc/mysql/ বা /etc/my.cnf পাথের মধ্যে অবস্থান করে। এই ফাইলটি টেক্সট ফাইল হিসেবে থাকে এবং একে কাস্টমাইজ করে সার্ভারের কনফিগারেশন সেট করা হয়।
my.cnf ফাইলের সাধারণ কাঠামো
MySQL কনফিগারেশন ফাইলটি বিভিন্ন সেকশন এ বিভক্ত থাকে, যেমন:
[client]: ক্লায়েন্ট কনফিগারেশন[server]: সার্ভারের কনফিগারেশন[mysqld]: MySQL সার্ভারের কনফিগারেশন[mysqld_safe]: MySQL নিরাপদ মোডের কনফিগারেশন
প্রত্যেকটি সেকশনের নিচে নির্দিষ্ট কনফিগারেশন প্যারামিটার থাকে, যা সার্ভারের কার্যকলাপ পরিচালনা করে।
সাধারণ my.cnf কনফিগারেশন ফাইল উদাহরণ
[mysqld]
# সার্ভার পোর্ট নম্বর
port = 3306
# সার্ভার বাইনডিং (লোকালহোস্ট বা অন্য IP)
bind-address = 0.0.0.0
# ডেটাবেস ডিরেক্টরি
datadir = /var/lib/mysql
# ইননোডিবি ইঞ্জিনের জন্য বাফার পুলের আকার
innodb_buffer_pool_size = 2G
# লগ ফাইলের অবস্থান
log_error = /var/log/mysql/error.log
# সর্বোচ্চ সংযোগ সংখ্যা
max_connections = 1000
# ক্যাশিংয়ের জন্য ডিফল্ট স্টোরেজ ইঞ্জিন
default-storage-engine = InnoDB
# লুকআপ ক্যাশিং সমর্থন
query_cache_size = 64M
# লোগিং স্তর
log-bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 7
# টেম্পোরারি ফাইলের অবস্থান
tmpdir = /tmp
# সার্ভার কুকি সেটিংস
character-set-server = utf8mb4
# ইননোডিবি ট্রানজেকশন সমর্থন
innodb_file_per_table = 1
# টেবিলের আকার সাইজ
max_allowed_packet = 64M
[mysqld_safe]
# mysqld_safe তে কিছু সুরক্ষা সেটিংস
log-error = /var/log/mysql/mysql_safe.log
pid-file = /var/run/mysqld/mysqld.pid
[client]
# ক্লায়েন্ট কনফিগারেশন
user = mysql
password = password
host = localhost
[mysql]
# mysql ক্লায়েন্টে ব্যবহৃত কিছু ডিফল্ট প্যারামিটার
no-auto-rehash = 1
কিছু গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার:
bind-address: এই প্যারামিটারটি সার্ভারের IP ঠিকানা নির্ধারণ করে, যা ক্লায়েন্টরা সংযুক্ত হতে পারে। সাধারণত এটি127.0.0.1(লোকালহোস্ট) থাকে, তবে এটি পরিবর্তন করা যেতে পারে অন্য IP ঠিকানা অথবা0.0.0.0(যেকোনো IP ঠিকানা থেকে সংযোগ গ্রহণ করার জন্য)।max_connections: এটি সার্ভারের সর্বোচ্চ সংযোগের সংখ্যা নির্ধারণ করে। যদি এই সংখ্যাটি ছোট হয়, তবে খুব বেশি সংযোগ হলে সার্ভার ব্যস্ত হয়ে পড়তে পারে।innodb_buffer_pool_size: ইননোডিবি ইঞ্জিনের জন্য বাফার পুলের আকার নির্ধারণ করে। এটি মেমোরি ব্যবহারের জন্য গুরুত্বপূর্ণ এবং সার্ভারের পারফরমেন্স বৃদ্ধিতে সহায়ক।log_error: MySQL এর ত্রুটি লগ ফাইলের পাথ। এই ফাইলটি সার্ভারের ত্রুটি এবং অন্যান্য সিস্টেম সম্পর্কিত তথ্য ধারণ করে।query_cache_size: এটি কুয়েরি ক্যাশিংয়ের জন্য ব্যবহার করা হয়। যদি আপনি ওয়েব অ্যাপ্লিকেশন বা অন্যান্য অ্যাপ্লিকেশন যা খুব বেশি রিড অপারেশন করে, তখন ক্যাশিং পারফরমেন্স উন্নত করতে পারে।character-set-server: সার্ভারের ডিফল্ট ক্যারেক্টার সেট নির্ধারণ করে, যেমনutf8mb4যা অধিকাংশ ভাষার জন্য উপযুক্ত।tmpdir: সার্ভারের টেম্পোরারি ফাইল সংরক্ষণের পাথ। এটি ডাটাবেসের কিছু অস্থায়ী ডেটা সংরক্ষণ করে, যেমন ইনডেক্স বা টেবিলের অস্থায়ী ফাইল।log-bin: বাইনারি লগ ফাইলের পাথ, যা ডেটাবেসের পরিবর্তন ট্র্যাক করতে ব্যবহৃত হয় এবং replication এর জন্য ব্যবহৃত হয়।expire_logs_days: বাইনারি লগ ফাইলগুলির জন্য সময়সীমা সেট করে। এটি সিস্টেমের ডিস্ক স্পেস সংরক্ষণে সহায়ক।
my.cnf ফাইল কনফিগার করার পর:
ফাইল সেভ করুন: ফাইলটি সেভ করার পর, MySQL সার্ভারকে পুনরায় রিস্টার্ট করুন যাতে নতুন কনফিগারেশন সেটিংস প্রযোজ্য হয়। সাধারণত এটি এই কমান্ডের মাধ্যমে করা যায়:
sudo systemctl restart mysqlকনফিগারেশন পরীক্ষা করুন: সার্ভার পুনরায় রিস্টার্ট করার পর, আপনি MySQL কনফিগারেশন পরীক্ষা করতে পারেন:
mysql --help
এটি MySQL সার্ভারের বর্তমান কনফিগারেশন সেটিংস প্রদর্শন করবে।
সারাংশ
MySQL এর my.cnf কনফিগারেশন ফাইলটি সার্ভারের পারফরমেন্স, নিরাপত্তা এবং কার্যকারিতা নিয়ন্ত্রণের জন্য অত্যন্ত গুরুত্বপূর্ণ। এর মধ্যে আপনি বিভিন্ন ধরনের কনফিগারেশন সেটিংস যেমন ডেটাবেস লোকেশন, সংযোগ সীমা, ক্যাশিং, এবং লগিং কনফিগার করতে পারেন, যা সার্ভারের কার্যকলাপ উন্নত করতে সাহায্য করে।
Read more