
به اشتراک بگذارید
| اولویت | اقدام اولیه | دستور پیشنهادی |
| 1 | بررسی وضعیت سرویس | systemctl status mysql |
| 2 | چک کردن فضای دیسک | df -h |
| 3 | مطالعه گزارش خطاها | journalctl -xe |
/var/lib/mysql تهیه کنید.- ✅ امنیت دادهها اولویت اول است.
- ✅ مشاهده پلنهای سرور مجازی وبداده
آنچه در این مقاله میخوانید:

سرویس MySQL در لینوکس چیست؟
mysql یا در نسخههای جدیدتر و توزیعهای مبتنی بر جامعه کاربری، با نام mariadb شناخته میشود. ساختار کارکرد آن به صورت زیر است:درخواست کاربر (PHP/Python)
⬇️
رابط شبکه (Socket/TCP)
⬇️
[ موتور پردازش MySQL ]
├─ مدیریت حافظه (Buffer Pool)
└─ سیستم فایل (Storage Engine - InnoDB)
دلایل اصلی استارت نشدن سرویس MySQL در سرور لینوکس
- پر شدن فضای دیسک: اگر هارد سرور شما حتی 1 مگابایت فضای خالی نداشته باشد، MySQL نمیتواند فایلهای موقت یا لاگهای جدید را ایجاد کند و بلافاصله متوقف میشود.
- کمبود حافظه RAM: دیتابیسها عاشق رم هستند! اگر سرویسهای دیگر (مثل آپاچی) تمام رم را مصرف کنند، سیستمعامل برای نجات خود، فرآیند MySQL را به اجبار میکشد (OOM Killer).
- خطاهای Syntax در پیکربندی: یک ویرگول اشتباه در فایل
my.cnfکافیست تا سرویس هرگز بالا نیاید. - دسترسیهای نادرست (Permissions): اگر مالکیت پوشه
/var/lib/mysqlاز کاربر mysql به کاربر دیگری تغییر کند، سرویس اجازه دسترسی به دادهها را نخواهد داشت.
پیشنیازهای عیبیابی سرویسهای دیتابیس
- دسترسی به کاربر
rootیا کاربری با سطح دسترسیsudo. - نصب بودن ابزارهای پایه مثل
df(برای چک کردن فضا) وfree(برای چک کردن رم). - دسترسی به ویرایشگرهای متن مثل
nanoیاvi.

آموزش رفع خطای استارت نشدن MySQL در وبداده
Webdade.com
1🖥️ Terminal (SSH)
دسترسی مستقیم به خط فرمان
2🗄️ Systemctl & Journalctl
مشاهده وضعیت و گزارشهای سیستمی
3💾 Log Files
تحلیل عمیق خطاهای اختصاصی دیتابیس
1- تشخیص علت با بررسی لاگهای MySQL در لینوکس
systemctl status mysql journalctl -xeu mysql 2- رفع خطای پر شدن دیسک در MySQL
bin-logs و فایلهای موقت به فضا نیاز دارد.df -h Use% روی 100% بود، باید فضا آزاد کنید. معمولاً فایلهای لاگ قدیمی در مسیر /var/log یا پکیجهای کش شده در /var/cache/apt کاندیدای خوبی برای حذف هستند.3- حل مشکل کمبود رم و تنظیمات Buffer Pool
اگر سرور شما رم کافی نداشته باشد، MySQL نمیتواند فضایی را که برای innodb_buffer_pool_size درخواست کرده، رزرو کند. در این حالت باید این مقدار را در فایل پیکربندی کاهش دهید.
/etc/mysql/my.cnf یا /etc/mysql/mysql.conf.d/mysqld.cnf
قرار دارد.نمونه موردی: تجربه کاربر 2025
در اواخر سال 2025، یکی از مشتریان ما با مشکل عجیبی مواجه شد. سرویس MySQL استارت میشد اما بعد از 10 ثانیه خودبخود Crash میکرد. پس از بررسی لاگهای MySQL در لینوکس متوجه شدیم که فایل ibdata1 به دلیل خاموشی ناگهانی سرور (رفتن برق دیتاسنتر قبلی مشتری) آسیب دیده بود.
✅ راهکار ما: ما از قابلیت innodb_force_recovery استفاده کردیم. با قرار دادن این مقدار روی 1 تا 3 در فایل کانفیگ، توانستیم دیتابیس را در حالت Read-only بالا بیاوریم، از دادهها Dump بگیریم و سپس دیتابیس را سالمسازی کنیم. این تجربه به ما آموخت که همیشه باید بکآپهای دورهای داشته باشیم.
| روش حل | میزان ریسک | نتیجه |
| حذف لاگهای اضافی | صفر | آزادسازی فضا و استارت سریع |
| Force Recovery | متوسط | بازیابی دادهها در شرایط بحرانی |
| تغییر Permissions | پایین | حل مشکلات دسترسی فایل |
تفاوت MySQL و MariaDB در رفع خطا
اگرچه دستورات اکثر مواقع یکسان هستند، اما مسیر فایلهای لاگ در MariaDB ممکن است متفاوت باشد. برای مثال در MariaDB، دستور دستور ریاستارت MySQL در لینوکس ممکن است به صورت systemctl restart mariadb باشد. همچنین فایل لاگ خطاها معمولاً در /var/log/mariadb/mariadb.log قرار میگیرد.
خدمات وبداده؛ ارائه سرور لینوکس
- ✅ مانیتورینگ 24 ساعته دیتابیس برای جلوگیری از پر شدن دیسک.
- ✅ کانفیگ بهینه my.cnf بر اساس منابع سرور شما (رم و CPU).
- ✅ بکآپگیری منظم و خودکار در موقعیتهای جغرافیایی مختلف.
نتیجهگیری: جمعبندی رفع خطای دیتابیس
در صورتی که سوالی داشتید یا با خطای خاصی مواجه شدید که در این مقاله نبود، میتوانید در بخش نظرات با ما در ارتباط باشید تا کارشناسان ما پاسخگوی شما باشند. امیدوارم این مقاله از بلاگ وبداده برای شما مفید بوده باشد. 🚀☁️
سوالات متداول از استارت نشدن سرویس MySQL در سرور لینوکس
1- چرا بعد از ریاستارت سرور، MySQL خودکار بالا نمیآید؟
احتمالاً سرویس در حالت enable نیست. از دستور systemctl enable mysql استفاده کنید تا در بوتهای بعدی خودکار اجرا شود.



