شرح تحويل الترميز قاعدة البيانات من latin1_swedish_ci ( أو utf8_general_ci ) إلى utf8mb4_unicode_ci لمن يملك منتدى منذ مدة .
من خلال تجربة شخصية وبعد معاناة مع الترميز في حالة كان المنتدى يشتغل منذ مدة :خاصة أن بعض الاستضافات لاتقبل النسخ الاحتياطي من لوحة التحكم المنتدى
اليكم خلاصة لأهم المراجل من أجل التحويل إلى utf8mb4_unicode_ci
وللتوضيح النسخة الجديدة Pbbord 3.0.3 أصبح ترميز قاعدة البيانات utf8mb4
الموضوع هو تجميعة للمساهمات القيمة للاخوة الأفاضل جزاهم الله خيرا .
kareem - Mr King - أبو العصافير - soliman - واخرون
قبل البدأ : يجب دائما عمل نسخة إحتياطية 2 من قاعدة البيانات قبل التحويل.
أولا: وضعية البداية منتدى pbboard 3.0.2 : قاعدة بيانات بترميز latin1_swedish_ci
ثانيا الوضعية الوسطى المرغوبة : قاعدة بيانات بترميز utf8_general_ci
ثالثا الوضعية النهائية المرغوبة : قاعدة بيانات بترميز utf8mb4_unicode_ci
الخطوات :
1- اذا تم التمكن من تصدير قاعدة البيانات عبر لوحة التحكم المنتدى ، فسوف تكون بترميز utf8_general_ci ( لتسهيل الشرح نرمز لها ب base1 ) ، فالأمور أصبحث سهلة ويتم المرور للمرحلة 6 اسفله أو من خلال الترقية للنسخة الجديدة pbboard 3.0.3
المشكلة هو في حالة عدم التمكن من تصدير قاعدة البيانات عبر لوحة تحكم المنتدى ( بسبب بعض الاستضافات التي تمنع ذلك) ، فيتم تصدييرها عبر phpadmin الاستضافة .
- بعد ذلك سوف يتم الاشتغال على السيرفر المحلي localhost تجنبا للمشاكل .
2- يمكن استعمل Wampserver2.4-x64.exe ( المتوافق مع النسخة pbboard 3.0.2 حيث php 5.6 او أقل)
3- نقوم بتثبيث نسخة pbboard 3.0.2
4- يتم الدخول php admin السيرفر المحلي ، ثم إنشاء قاعدة بيانات جديدة (base2) على السيرفر المحلي ولكن لابد من تحديد : utf8_genaral_ci
5- بالدخول على القاعدة الجديدة (base2) يتم استراد قاعدة قاعدة بيانات السابقة (base1)
ملاحظة هامة : يرجى الرفع من قيمية memory_limit لتصبح مثلا memory_limit = 1024M في ملف php.ini ( وذلك تجنبا للمشاكل وبحكم حجم قاعدة البيانات )
6- نقوم بفتح الملف engine/libs/db.class.php
نبحث
CODE
// mysql_query("set character_set_server='utf8'");
// mysql_query("set names 'utf8'");
نقوم بحذف // لتصبح كمايلي:CODE
mysql_query("set character_set_server='utf8mb4'");
mysql_query("set names 'utf8mb4'");