وبلاگ نت‌آرامآموزش، تجربه و راهکارهای زیرساخت

فایل دیتابیس بزرگ در phpMyAdmin آپلود نمی‌شود؛ راه امن انتقال چیست؟

اگر فایل SQL بزرگ آپلود نمی‌شود یا Import نیمه‌کاره می‌ماند، روش آزمایش، انتقال خصوصی و درون‌ریزی امن با SSH را ببینید.

انتشار:
توسط تیم فنی نت‌آرام
۷ دقیقه زمان مطالعه
۰ دیدگاه
محتوای تخصصی، ساده و کاربردی
هماهنگ با هویت حرفه‌ای نت‌آرام
بازگشت به لیست مقالات
تصویر شاخص مقاله فایل دیتابیس بزرگ در phpMyAdmin آپلود نمی‌شود؛ راه امن انتقال چیست؟ در وبلاگ نت‌آرام
محتوای آموزشی وبلاگ نت‌آرام
می‌خواهید بکاپ دیتابیس سایت را به هاست جدید منتقل کنید. فایل را در phpMyAdmin انتخاب می‌کنید، اما اندازه مجاز کمتر از حجم فایل است، صفحه زمان زیادی منتظر می‌ماند یا فرایند نیمه‌کاره خطا می‌دهد. علت ممکن است محدودیت آپلود، زمان اجرای درخواست، حجم عملیات پایگاه داده یا حتی یک دستور نامعتبر داخل فایل باشد. هر خطایی با «زیاد کردن حجم آپلود وردپرس» حل نمی‌شود.
در این آموزش ابتدا نوع خطا را مشخص می‌کنیم و سپس دو مسیر برای انتقال در نظر می‌گیریم: Import از پنل در صورت پشتیبانی، یا استفاده از خط فرمان سرور برای کاربری که دسترسی SSH مجاز دارد. پیش از هر کدام، از دیتابیس مقصد و بکاپ اصلی محافظت می‌کنیم.

قبل از شروع: مقصد را خالی و قابل بازگشت نگه دارید

فایل اصلی بکاپ را بدون تغییر در محل امن نگه دارید. اگر مقصد دیتابیس سایت فعال است، از وضعیت کنونی آن هم بکاپ قابل بازیابی بگیرید. بهتر است نخست یک دیتابیس آزمایشی خالی در حساب میزبانی بسازید و واردسازی را آنجا امتحان کنید.
اگر فایل حاوی دستور حذف یا بازسازی جدول باشد، Import در دیتابیس فعال می‌تواند اطلاعات موجود را تغییر دهد. اگر Import قبلی نیمه‌کاره متوقف شده، بخشی از جدول‌ها ممکن است ساخته شده باشند. بدون بررسی و برنامه، همان فایل را دوباره روی مقصد نیمه‌پر اجرا نکنید؛ خطای تکراری‌شدن داده یا مخلوط‌شدن نسخه‌ها ممکن است رخ دهد.
برای فروشگاه فعال، زمان تهیه بکاپ را یادداشت کنید. سفارش‌هایی که بعد از آن ثبت شده‌اند در فایل قدیمی وجود ندارند. جایگزین‌کردن دیتابیس فعال با بکاپ قدیمی بدون تطبیق سفارش‌ها و پرداخت‌های بعدی می‌تواند اطلاعات تازه را از دسترس خارج کند.

اول مشخص کنید خطا در کدام مرحله است

در سی‌پنل، phpMyAdmin و دیتابیس آزمایشی را باز کنید و به تب Import بروید. معمولاً نزدیک انتخاب فایل، بیشینه اندازه مجاز نمایش داده می‌شود. حجم فایل و پیام دقیق را با هم مقایسه کنید:
  • اگر فایل از حد نمایش‌داده‌شده بزرگ‌تر است و اصلاً پذیرفته نمی‌شود، مسئله در مرحله دریافت فایل است.
  • اگر بارگذاری انجام شده ولی بعد از مدتی صفحه قطع شده، ممکن است محدودیت زمان درخواست یا خطایی در پردازش وجود داشته باشد. صفحه قطع‌شده به‌تنهایی ثابت نمی‌کند دیتابیس هیچ تغییری نکرده است.
  • اگر پیام SQL با شماره خطا می‌بینید، همان پیام را بخوانید. مثلاً 1044 به مجوز دیتابیس و 1062 به داده تکراری مربوط می‌شود؛ افزایش اندازه آپلود آن خطا را حل نمی‌کند.
سی‌پنل برای بخش‌های پنل از تنظیمات خاص خود استفاده می‌کند. برای نمونه، مستندات WHM درباره Max HTTP submission size می‌گوید این محدودیت می‌تواند بر بارگذاری در phpMyAdmin نیز اثر بگذارد. افزایش upload_max_filesize سایت وردپرسی به‌تنهایی لزوماً محدودیت phpMyAdmin را تغییر نمی‌دهد. روی هاست اشتراکی، تغییر محدودیت پنل ممکن است فقط در اختیار مدیر سرویس باشد.

مسیر اول: استفاده از پنل برای فایل سازگار

اگر حجم فایل در محدوده پشتیبانی پنل است، ابتدا بررسی کنید فایل SQL معتبر و مخصوص دیتابیس موردنظر باشد. برخی نصب‌های phpMyAdmin از فایل فشرده نیز پشتیبانی می‌کنند؛ نوع و اندازه قابل پذیرش را در همان صفحه یا مستندات سرویس ببینید. فشرده‌شدن فایل ممکن است مشکل حجم بارگذاری را کاهش دهد، ولی تضمین نمی‌کند زمان اجرای همه دستورها یا سازگاری آن‌ها مناسب باشد.
در ستون کناری phpMyAdmin نام کامل دیتابیس آزمایشی را انتخاب کنید، سپس تب Import را باز و فایل درست را انتخاب کنید. پیش از اجرا، نام دیتابیس انتخاب‌شده را دوباره ببینید. اگر فایل حاوی CREATE DATABASE یا USE نام قدیمی باشد، ممکن است برخلاف انتخاب شما به نام قبلی اشاره کند. راهنمای خطای ۱۰۴۴ و نام دیتابیس این حالت را توضیح می‌دهد.
پس از اجرا، پیام نتیجه و جدول‌های ساخته‌شده را ببینید. اگر صفحه قطع شد، برای آزمایش دوباره ابتدا مشخص کنید چه چیزی وارد شده و یک مقصد تازه و خالی آماده کنید؛ ادامه خودکار یا موفقیت کامل را حدس نزنید.

مسیر دوم: Import از طریق SSH برای فایل SQL بزرگ

اگر سرویس شما SSH مجاز و مشتری MySQL یا MariaDB دارد، اجرای فایل روی سرور می‌تواند محدودیت بارگذاری مرورگر را دور بزند؛ با این حال همچنان به فضای کافی، مجوز درست و سازگاری فایل نیاز دارید. اگر SSH ندارید، از مدیر هاست درباره روش پشتیبانی‌شده انتقال فایل و بازیابی سؤال کنید؛ نیازی به بازکردن پورت دیتابیس برای اینترنت نیست.
ابتدا فایل SQL را با روش امن مانند SFTP به پوشه خصوصی حساب منتقل کنید؛ آن را داخل public_html یا پوشه قابل دانلود سایت قرار ندهید. نام، حجم و در صورت امکان هش فایل را با نسخه اصلی مقایسه کنید. مطمئن شوید فایل واقعاً SQL است؛ فایل فشرده باید با روش مناسب و در فضای خصوصی پردازش شود. فضای موجود هم باید برای فایل و داده‌های واردشده کافی باشد.
در ترمینال لینوکس سرور، پس از جایگزینی کاربر، دیتابیس و مسیر نمونه با مقادیر واقعی و تأییدشده، می‌توانید از ساختار زیر استفاده کنید:
کد / دستورmysql -u account_user -p account_database < /home/account/private/backup.sql
این فرمان فایل سمت راست را به مشتری MySQL می‌دهد تا دستورها را برای دیتابیس نام‌برده اجرا کند. -p درخواست رمز تعاملی می‌دهد؛ رمز را در خود دستور ننویسید. نام دیتابیس و کاربر معمولاً پیشوند حساب سی‌پنل را دارند. دستور را در ترمینال لینوکس اجرا کنید، نه داخل محیط PowerShell ویندوز؛ عملگر ورودی در آنجا رفتار متفاوتی دارد. راهنمای رسمی MySQL برای واردکردن SQL همین روش ورودی فایل را توضیح می‌دهد.
این نمونه برای فایلی است که جدول‌های یک دیتابیس را شامل می‌شود و مقصد ناخواسته دیگری را داخل فایل انتخاب نمی‌کند. اگر بکاپ شامل CREATE DATABASE، USE یا نام دیتابیس صریح باشد، انتخاب نام در فرمان به‌تنهایی تضمین نمی‌کند همه دستورها به مقصد موردنظر بروند. پیش از اجرا محتوای فایل و سازگاری آن را بررسی کنید.

اگر SSH قطع شد یا فرمان خطا داد

فوراً همان دستور را دوباره روی مقصد تکرار نکنید. ابتدا پیام خطا و جدول‌های موجود را بررسی کنید. اگر پنل یا SSH از کار افتاده، ممکن است برخی دستورها قبلاً اجرا شده باشند. برای تلاش دوباره، مطابق برنامه بازیابی یک دیتابیس آزمایشی تازه بسازید یا مقصد را به وضعیت شناخته‌شده برگردانید.
برای اتصال‌های طولانی، مدیر سرور می‌تواند طبق امکانات مجاز سرویس از یک نشست ماندگار استفاده کند و نتیجه و کد پایان را ثبت کند. این کار از نیاز به کنترل صحت فایل و داده پس از اجرا کم نمی‌کند. اگر خطا به collation، مجوز، محدودیت فضا یا اتصال اشاره دارد، همان مشکل را جداگانه اصلاح کنید و از خاموش‌کردن تصادفی کنترل‌های امنیتی بپرهیزید.

چطور مطمئن شویم انتقال کامل بوده است؟

پس از پایان، جدول‌های مورد انتظار را با منبع مقایسه کنید و نمونه‌ای از نوشته‌ها، کاربران یا محصولات را در محیط آزمایشی ببینید. تعداد جدول‌ها سرنخ است، اما به‌تنهایی ثابت نمی‌کند تمام ردیف‌ها، تصاویر و کارکردها درست‌اند. در وردپرس، فایل‌های سایت و پوشه رسانه نیز جدا از دیتابیس باید در مقصد موجود باشند.
اگر مقصد فروشگاه است، پرداخت و پیامک واقعی را در محیط آزمایشی فعال نکنید. سفارش‌های بعد از زمان بکاپ را در برنامه انتقال نهایی لحاظ کنید. پس از تأیید، فایل SQL خصوصی و نسخه بکاپ را مطابق سیاست نگهداری امن مدیریت کنید.
برای بررسی نیازهای سایت، مشخصات هاست وردپرس نت‌آرام را ببینید. محدودیت پنل، مجوز دیتابیس و سازگاری فایل باید جدا از ظرفیت سرویس تشخیص داده شوند.
اشتراک‌گذاری:
لینکدینتلگرامایکس

دیدگاه‌ها (۰)

دیدگاه‌های تاییدشده و پاسخ‌های تیم نت‌آرام