فایل my.cnf
یکی از مهمترین فایلهای پیکربندی در MySQL است که برای کنترل و تنظیمات مختلف سرور MySQL استفاده میشود. این فایل شامل گزینهها و تنظیماتی است که به بهینهسازی عملکرد، امنیت، و مدیریت منابع کمک میکند.
my.cnf
محل دقیق فایل پیکربندی my.cnf
بسته به سیستمعامل و نحوه نصب MySQL متفاوت است. رایجترین مکانهای این فایل عبارتند از:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
(فایل تنظیمات مخصوص کاربر)C:\Program Files\MySQL\MySQL Server x.x\my.ini
C:\ProgramData\MySQL\MySQL Server x.x\my.ini
my.cnf
فایل my.cnf
از چندین بخش تشکیل شده که هر کدام به تنظیمات خاصی مربوط میشوند. در هر بخش، تنظیمات به صورت جفتهای کلید-مقدار نوشته میشوند. بهطور کلی، بخشهای زیر در فایل my.cnf
استفاده میشوند:
این بخش تنظیمات مربوط به سرور MySQL را مشخص میکند و به شما این امکان را میدهد که عملکرد و منابع سرور را پیکربندی کنید.
مثال:
[mysqld]
port = 3306
bind-address = 127.0.0.1
max_connections = 200
innodb_buffer_pool_size = 2G
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
port
: شماره پورت پیشفرض MySQL.bind-address
: آدرس IP که MySQL به آن گوش میدهد (برای محدود کردن دسترسی میتوان از 127.0.0.1
استفاده کرد).max_connections
: حداکثر تعداد اتصالات همزمان.innodb_buffer_pool_size
: مقدار حافظه اختصاص داده شده به InnoDB Buffer Pool (که به بهبود عملکرد کمک میکند).innodb_buffer_pool_size
: حجم حافظه اختصاصدادهشده به InnoDB buffer pool.log_error
: مسیر فایل لاگ خطا.slow_query_log
: فعالسازی لاگ پرسوجوهای کند.slow_query_log_file
: مسیر فایل لاگ پرسوجوهای کند.long_query_time
: زمان مورد نیاز برای در نظر گرفتن یک پرسوجو به عنوان پرسوجوی کند.این بخش برای تنظیمات کلاینت MySQL (مثل ابزار خط فرمان mysql
) است.
مثال:
[client]
user = root
password = mypassword
host = 127.0.0.1
user
: نام کاربری پیشفرض.password
: رمز عبور پیشفرض.host
: آدرس سرور MySQL که کلاینت به آن متصل میشود.این بخش برای تنظیمات فرایند مدیریت MySQL استفاده میشود.
مثال:
[mysqld_safe]
log-error = /var/log/mysql/mysql_error.log
pid-file = /var/run/mysqld/mysqld.pid
log-error
: مسیر فایل لاگ خطاهای MySQL.pid-file
: مسیر فایل pid
که اطلاعات مربوط به فرآیند MySQL را ذخیره میکند.این بخش برای تنظیمات مربوط به ابزار پشتیبانگیری mysqldump
استفاده میشود.
مثال:
[mysqldump]
quick
max_allowed_packet = 16M
quick
: دستور mysqldump
را سریعتر اجرا میکند.max_allowed_packet
: حداکثر اندازه بسته دادهای که میتواند در یک عملیات منتقل شود.my.cnf
my.cnf
:nano
یا vim
استفاده کنید. برای مثال، در سیستمعامل لینوکس، با استفاده از دستور زیر میتوانید فایل را باز کنید: sudo nano /etc/mysql/my.cnf
max_connections
را تغییر دهید: [mysqld]
max_connections = 300
sudo systemctl restart mysql
my.cnf
query_cache_size
و query_cache_type
میتوان حافظه پنهان پرسوجوها را تنظیم کرد. query_cache_size = 64M
query_cache_type = 1
max_allowed_packet = 64M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
در اینجا یک مثال از فایل my.cnf
با تنظیمات مختلف برای سرور MySQL، کلاینتها و ابزارها آورده شده است:
[client]
user = root
password = my_password
host = 127.0.0.1
[mysqld]
port = 3306
bind-address = 0.0.0.0
max_connections = 200
innodb_buffer_pool_size = 2G
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
[mysqldump]
quick
max_allowed_packet = 64M
[mysql]
prompt = '\u@\h [\d]> '
auto-rehash
فایل my.cnf
یک ابزار مهم برای تنظیم و مدیریت MySQL است. با تنظیم صحیح این فایل، میتوان به بهینهسازی عملکرد سرور، بهبود امنیت، و مدیریت منابع پایگاه داده کمک کرد. توجه داشته باشید که هر تغییری که در این فایل ایجاد میکنید، باید با توجه به نیازها و شرایط خاص سرور شما انجام شود.
PHP یکی از محبوبترین زبانهای برنامهنویسی سمت سرور برای توسعه وب است که به دلیل…
فهرست مطالب فایل php.ini چیست؟ فایل php.ini کجاست؟ مهمترین تنظیمات در فایل php.ini حداکثر زمان…
اتصال دائم (Persistent Connection) به پایگاه داده یکی از روشهای بهینهسازی ارتباطات در برنامههای PHP…
ذخیره و نمایش تصاویر و مدیا در پایگاه داده یکی از نیازهای رایج در پروژههای…
هنگام کار با پایگاه داده در PHP، ممکن است خطاهایی ناشی از کوئریهای ناقص یا…
ایجاد پایگاه داده در PHP یکی از مباحث اساسی برای ساخت وبسایتها و برنامههای تحت…