شرح تحويل الترميز قاعدة البيانات من 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'");</div>
<div dir="ltr">
7- نفتح ملف engine/libs/db_mysqli.class.php
نبحث
CODE
mysqli_query("set character_set_server='utf8mb4'");
mysqli_query("set names 'utf8mb4'");
نقوم بحذف // لتصبح كمايلي:
CODE
mysqli_query("set character_set_server='utf8mb4'");
mysqli_query("set names 'utf8mb4'");
8- دائما على السيرفر المحلي : الخطوة الموالية نربط قاعدة بيانات base2 بالمنتدى pbboard2 من خلال معلومات : engine/config.php
9- الخطوة الموالية ودائما على السيرفر المحلي يتم تحميل الملف المرفق الدي اشار اليه الأح الكريم kareem</b>
>> للتحميل من هنا
ويتم تحرر الملف conv.php ونضع فيه معلومات قاعدة البيانات واسم المستخدم (base2) ثم نرفع الملف لموقعنا على السيرفر المحلي
في الملف الرئيسي للمنتدى (بجانب pbboard.class.php )
نقوم بزيارته ، سيظهر لك
Convert utf8 to utf8mb4
Start اكبس على Start وسيقوم التحويل قاعدة البيانات النهائية بالترميز utf8mb4_unicode_ci
10- الخطوة الأخيرة تصدير قاعدة البيانات base2 من السيرفر المحلى ، واسترادها على الاستضافة
لنحصل على المطلوب ، ويمكن الترقية للاصدار الجديد pbboard 3.0.3
موفقين