وقتی با پایگاه داده MySQL کار میکنید، طبیعی است که در برخی مواقع به ارسال و دریافت از پایگاه داده نیاز داشته باشید. وقتی ابعاد فایلی که میخواهید وارد پایگاه داده کنید، کوچک باشد، فرآیند انتقال بسیار سریع انجام میشود. امّا در هنگام انتقال فایلهای حجیم sql به پایگاه داده MySQL با حجمهایی مانند ۱۰، ۱۰۰ و یا حتی در حدّ ۸۰۰، این پروسه زمان زیادی از شما میگیرد و گاهی اوقات مرورگر نیز با مشکل روبرو میشود.
در لوکالهاست وقتی از پایگاه داده MySQL در کنار سرور XAMPP استفاده میکنیم، از ابزار Phpmyadmin کمک میگیریم. این ابزار یک رابط کاربری بسیار ساده برای تعامل با پایگاه داده و انجام عملیات مختلف در اختیار ما قرار میدهد. در واقع، ما از Phpmyadmin برای انتقال و دریافت فایلها به پایگاه داده استفاده میکنیم.
در جبهه سرور، وقتی از سیپنل استفاده میکنیم، باز هم Phpmyadmin برای تعامل با پایگاه داده و انتقال فایلها بهره میگیریم. در این حالت، حداکثر اندازه فایلها برابر ۲۰۴۸ کیلوبایت است. در صورتی که برای انتقال فایلهای حجیم sql به پایگاه داده اقدام کنیم، با پیغام خطای زیر روبرو خواهیم شد.
the file size exceeded the maximum size permitted by your PHP configuration
بنابراین در اینجا به دو روش برای آپلود و انتقال فایلهای حجیم sql به پایگاه داده MySQL اشاره میکنیم.
۱) افزایش محدودیت انتقال PHP در XAMPP / WAMP
اولین روش، افزایش محدودیت انتقال php در XAMPP / WAMP است. این روش، به ویژه برای فایلهای با حجم متعادل مانند ۱۰ مگابایت تا ۲۰۰ مگابایت مناسب است. با این وجود، فایلهای بسیار حجیم ممکن است باعث توقف عملکرد مرورگر شوند. برای این منظور باید گامهای زیر را دنبال کنید.
۱) فایلی را با نام php.ini در درایو c کامپیوتر خود پیدا کنید. این فایل میتواند در آدرس “C:\xampp\php\php.ini ” یا “C:\xampp\apache\bin\php.ini” باشد.
۲) حالا فایل php.ini را باز کنید و به دنبال پارامتر “upload_max_filesize“ بگردید. برای جستجوی کلیدواژه upload_max_filesize میتوانید از کلیدهای CTRL+F کمک بگیرید. این موضوع در تصویر زیر نشان داده شده است. در اینجا میتوانید اندازه آپلود را به مقدار دلخواه تغییر دهید. در اینجا، آن را به ۵۶۷ مگابایت افزایش میدهیم.
upload_max_filesize =56M
البته افزایش upload_max_filesize به یک مقدار بسیار بزرگ بههیچوجه توصیه نمیشود. چرا که میتواند موجب از کار افتادن سیستم یا مرورگر شود.
۳) اکنون باید به دنبال “post_max_size” باشید. حتماً در صورتی که متغیر post_max_size را پیدا کردید، از دکمههای جهتی بالا و پایین کمک بگیرید.
۴) مقدار این پارامتر برابر یا بیشتر از upload_max_filesize قرار دهید. در اینجا، آن را معادل ۱۲۸ مگابایت تنظیم میکنیم.
post_max_size =128M
۵) سرور XAMPP آپاچی و MySQL را دوباره راهاندازی و phpmyadmin را بازنشانی کنید.
به این ترتیب، میتوانید فایلها با ابعاد بزرگ را تا محدودهای که تعیین کردهاید، ارسال کنید.
به همین ترتیب برای افزایش ابعاد آپلود فایل php در WAMP
به شکلی مشابه، مراحل بالا را در فایل php.ini دنبال کنید و به دنبال “memory_limit” بگردید. این پارامتر را به ۱۰۲۴ مگابایت افزایش دهید.
احتمالاً مقدار پیشفرض memory_limit برابر ۱۲۸ مگابایت است. آن را به میزان دلخواه افزایش دهید.
memory_limit=1024M
۲) انتقال فایلهای حجیم sql به پایگاه داده از طریق خط فرمان CMD
مطمئناً این روش بهویژه برای فایلهای سنگین sql در حد یک گیگاباییت مفید خواهد بود. در نتیجه، شما قادر خواهید بود بیش از ۱۰۰ برابر سریعتر از ابزار phpmyadmin فایل خود را انتقال دهید.
برای انتقال فایلهای حجیم sql به پایگاه داده از طریق cmd به شیوه زیر عمل کنید.
اول از همه، باید cmd را همراه با مجوزهای مدیریتی باز کنیم.
بهعلاوه، موقعیت خود را با استفاده از فرمان زیر به “C:\xampp\mysql\bin>mysql“ تغییر میدهیم.
cd C:\xampp\mysql\bin>mysql
سپس باید فرمان زیر را اجرا کنید.
mysql -u {DB_USER} -p {DB_NAME} < path/to/file/ab.sql
در اینجا باید کاربر و نام پایگاه داده را وارد کنید. همچنین به فایل vh_backup.sql برای انتقال با مسیر کامل احتیاج داریم.
نهایتاً برای ادغام نقطه دوم و سوم، قالب کلی به صورت زیر خواهد بود.
C:\xampp\mysql\bin>mysql -u {DB_USER} -p {DB_NAME} < path/to/file/ab.sql
این کدی است که برای انتقال فایل SQL در اینجا اجرا شده است.
my database name DB_NAME: vintageh_vintagehome user name DB_USER: root DB password: root SQL file name: vh_backup
mysql -u root -p vintageh_vintagehome < D:\downloads\sql\vh_backup.sql
همچنین پسورد کاربر پایگاه داده موردنیاز خواهد بود.
تصاویر زیر مراحل کار را نشان میدهند.
روش دوم، سریعترین راه برای انتقال فایلهای حجیم sql به پایگاه داده است.
امیدواریم که مطالب بالا را بهخوبی دریافت کرده باشید و این روشها بتوانند مورد استفاده شما قرار گیرند.