سلام و درود
به درخواست یکی از مشتریان بکاپ سایتشو به سروری که خریده بود منتقل کردیم.
ولی یه مشکل وجود داشت و بازگردانی دیتابیس ناقص انجام می شد.
تصمیم گرفتم بکاپ دیتابیس رو از ssh ریستور کنم ، وقتی از ssh ریستور کردم با این خطا مواجه شدم:
Unknown collation: 'utf8mb4_unicode_ci'
خب مشکل کجا بود؟
بعد از بررسی که انجام دادم متوجه شدم سرور مبدا که داخل اون ازین هاست بکاپ گرفتیم نسخه mysql 5.6 بوده و سرور مقصد نسخه 5.5 داره
از طرفی چون هاست اشتراکی بود ، ریسک ارتقا به 5.6 زیاد بود.
چجوری مشکل رو حل کردم؟
ساختار فرمتها را در فایل بکاپ به نسخه 5.5 تغییر دادم.
برای این مورد از دستورات زیر میتونین استفاده کنین:
perl -pi -e 's/utf8mb4_unicode_520_ci/utf8 _general_ci/' s.sql
perl -pi -e 's/utf8mb4/utf8/' s.sql
اگه اسم فایل بکاپ دیتابیسمون s.sql باشه با دستور اولی هر چی utf8mb4_unicode_520_ci باشه به utf8 _general_ci تغییر میده و هرچی utf8mb4 باشه به utf8 تغییر میده.
حالا میتونیم براحتی این بکاپ رو ریستور کنیم.
موفق و خندون باشین