منتدى دعم PBBoard الرسمي
(نسخة قابلة للطباعة من الموضوع)
https://pbboard.info/forums/t22107
أنقر هنا لمشاهدة الموضوع بهيئته الأصلية

شرح تحويل الترميز latin1_swedish   إلى  utf8mb4_unicode
ali2014 11-03-2019 02:40 صباحاً
السلام عليكم ورحمة الله
شرح تحويل الترميز قاعدة البيانات من 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
MjY0MTY1MQ20202
MzE1MTk4MQ441

ثانيا ​الوضعية الوسطى المرغوبة : قاعدة بيانات بترميز utf8_general_ci
MjQyMjkwMQ717105

ثالثا ​الوضعية النهائية المرغوبة : قاعدة بيانات بترميز utf8mb4_unicode_ci
Mjc4OTA2MQ20203


الخطوات :
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'");

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

موفقين
منتدى دعم PBBoard الرسمي

Copyright © 2009-2024 PBBoard® Solutions. All Rights Reserved