محتوای آموزشی وبلاگ نتآرام
یک گزارش بزرگ یا عملیات وارد کردن داده اجرا میکنید و MySQL پیام ناتوانی در ساخت فایل موقت میدهد. عجیب است، چون پارتیشنی که فایلهای سایت روی آن است هنوز جا دارد. نکته اینجاست که محل فایل موقت ممکن است روی مسیر یا پارتیشن دیگری باشد.
اول مسیر واقعی را پیدا کنید
اگر به نشست MySQL دسترسی مشاهده دارید، این فرمان مقدار تنظیم جاری مسیر موقت را نشان میدهد:
کد / دستورSHOW VARIABLES LIKE 'tmpdir';
خروجی را همانطور که نمایش داده شده یادداشت کنید. یک مسیر نمونه مانند /tmp لزوماً مسیر همه سرورها نیست. این تنظیم ممکن است چند مسیر داشته باشد؛ در لینوکس مسیرها با
: از هم جدا میشوند. در این حالت هر مسیر را جداگانه بررسی کنید، نه اینکه کل رشته را به عنوان یک نام مسیر وارد کنید. همچنین در نسخهها و موتورهای مختلف، همه فایلهای موقت الزاماً از همین تنظیم استفاده نمیکنند؛ نوع خطا و مستندات همان موتور را نیز بررسی کنید.فضای همان مسیر را ببینید
در سرور لینوکسی، مدیر میتواند پس از جایگزین کردن مسیر واقعی، فضای فایلسیستم و inode را مشاهده کند:
کد / دستورdf -h /tmp
df -i /tmp
اگر مسیر خروجی tmpdir چیز دیگری است، در هر دو فرمان آن را جایگزین کنید. اولی فضای حجمی و دومی تعداد inode را نشان میدهد. پر بودن هرکدام ممکن است ساخت فایل تازه را مختل کند؛ فضای آزاد پوشه سایت دلیل کافی برای سالم بودن پارتیشن موقت نیست.
مثلاً اگر خروجی
df -h برای مسیر موقت مصرف ۹۹ درصد را نشان میدهد، ابتدا با مدیر مشخص کنید کدام فایلسیستم پر است و چه برنامهای فضای آن را گرفته است. اگر حجم آزاد است ولی df -i مصرف inode را نزدیک ۱۰۰ درصد نشان میدهد، تعداد بسیار زیاد فایل هم میتواند مانع ساخت فایل تازه شود. در بعضی سرویسها مسیر موقت داخل محیط جداگانه برنامه دیده میشود؛ در این حالت نتیجه /tmp روی میزبان لزوماً فضای همان مسیر در محیط MySQL نیست. آن را با مسئول سرویس تطبیق دهید.اگر فضا آزاد است
پیام دقیق و کد خطای سیستم را در گزارش MySQL ببینید. خطای نوشتن ممکن است به مجوز، وضعیت فقطخواندنی فایلسیستم یا مسئله دیگری مربوط باشد. از مدیر بخواهید با توجه به حساب اجرای سرویس، مسیر و مجوزهای لازم را بررسی کند. دادن مجوز نوشتن به همه کاربران یا اجرای پایگاه داده با دسترسی بالاتر راهحل عمومی و امنی نیست.
فضا را چطور بدون آسیب آزاد کنیم؟
از حذف همه فایلهای /tmp یا فایلهای فعال MySQL خودداری کنید. ابتدا مشخص کنید کدام برنامه فضا را مصرف کرده و آیا فایل واقعاً دیگر مورد استفاده نیست. برای برنامههای مدیریتی از روش پاکسازی مستند و هماهنگ با صاحب سرویس استفاده کنید. اگر علت عملیات گزارشگیری بزرگ است، پس از بازگشت سرویس همان عملیات را با مدیر برنامه بررسی کنید تا مشکل تکرار نشود.
تغییر tmpdir به مسیر جدید هم نیاز به فضای کافی، مجوز درست و بررسی نسخه و نحوه راهاندازی دارد. این کار ممکن است به تغییر تنظیمات و شروع دوباره سرویس نیاز داشته باشد؛ پیش از آن روش برگشت و زمان مناسب را تعیین کنید.
پس از رفع مشکل، همان گزارش یا عملیات را با داده آزمایشی تکرار کنید و هنگام اجرا فضای مسیر موقت را ببینید. اگر دوباره به سرعت پر میشود، صرف پاکسازی یکباره کافی نیست و باید اندازه عملیات، محل فایل موقت و ظرفیت مجاز را با مدیر پایگاه داده بررسی کنید.
منابع: فایل موقت MySQL و خطای ساخت فایل.
مقاله قبلی
مقاله بعدی
دیدگاهها (۰)
دیدگاههای تاییدشده و پاسخهای تیم نتآرام
