شركة الدعم و تطوير المنتديات
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

شركة الدعم و تطوير المنتديات

هذا المنتدى مختص بتطوير مواقع و منتديات و تلبية طلبات اطلبو و نحن نلبي في مدة صغيرة جدا
 
الرئيسيةأحدث الصورالتسجيلدخول

 

 تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
فارس التطوير
صاحب المنتدى
صاحب المنتدى
فارس التطوير


المساهمات : 358
تاريخ التسجيل : 23/09/2010

تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH Empty
مُساهمةموضوع: تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH   تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH Emptyالجمعة أكتوبر 22, 2010 4:55 am

بسم الله الرحمن الرحيم

بحثت كثيراً عن طريقة لتحويل قاعدة بيانات المنتدى إلى UTF-8 ، ووجدت طرقأعتقد أنها (( هزيلة )) ، وغير صالحة ، لسبب مهم جداً أنها تعتمد علىالمتصفح ..

بحيث لو انقطع الإنترنت - واجهت DNS Error - و و و .. سيذهب كل تعبك سدى ..

علاوة على أخذها لوقت طوووووووووووويل جداً قد يزيد عن يوم كامل في حال كان المنتدى كبيراً ..

الطرق التي شاهدتها تصلح لمنتديات صغيرة لا تزيد المشاركات فيها عن 50 ألف مشاركة كحد أقصى ..

لذلك قمت بالبحث الطويل والطويل جداً عن طريقة سهلة وسريعة لإنهاء هذهالمعاناة ، وللأسف (( لا يوجد )) .. هناك أخطاء تواجهني ، هناك نقص فيالأوامر ، ومشاكل أخرى ..

فعكفت طويلاً على حل هذه الأزمة والحمد لله .. تم حلها بشكل كاااااااااامل على منتديات من نوع vb4 ..

وتوصلت إلى ما يلي :

1- أن التحويل من ترميز إلى ترميز يكون بإستخدام الدالة iconv
2- الجداول التي تحتوي على حقول من نوع binary أو كما يعرف عنها blob يجبأن لا يتم تحويلها بواسطة الدالة لأنها عبارة عن صور وملفات .
3- يجب أن تمتلك حساب SSH
4- قاعدة البيانات كما هو معلوم قبل التحويل من نوع latin1

وبدأت في حل المشكلة كالتالي :

1- أخذ نسخة احتياطية من المنتدى باستثناء الجداول التي تحتوي على حقول binary بالأمر التالي :

رمز Code:
mysqldump -u root -p --default-character-set=latin1 --ignore-table=database_vb.block --ignore-table=database_vb.blog_attachment --ignore-table=database_vb.customavatar --ignore-table=database_vb.customprofilepic --ignore-table=database_vb.filedata --ignore-table=database_vb.stylevar --ignore-table=database_vb.stylevardfn --ignore-table=database_vb.socialgroupicon --ignore-table=database_vb.sigpic database_vb > vb4-latin1.sql
حيث أن database_vb هي قاعدة بيانات المنتدى ..

وبالأمر السابق قمنا بإستثناء الجداول من نوع binary ، وأخذ باقي القاعدة ووضعها في ملف vb4-latin1.sql

بقي الآن أن نأخذ بقية قاعدة الجداول التي استثنيناها لكن في ملف جديد ..

وبالتالي ننفذ الأمر التالي :

رمز Code:
mysqldump -u root -p --default-character-set=latin1 database_vb block blog_attachment customavatar customprofilepic filedata stylevar stylevardfn socialgroupicon sigpic > vb4-latin1-blob.sql
حيث أن database_vb هي قاعدة بيانات المنتدى ..

والهدف هو ملف vb4-latin1-blob.sql

والآن بعد أن أخذنا قاعدة البيانات كاملة نبدأ في عملية التحويل ، وتم عبر عدة مراحل :

سنعمل الآن على تغيير الكلمات في قاعدة البيانات التي تشير إلى أن القاعدةlatin1 إلى utf8 ، وذلك بالمرور على الملفين السابق إعدادهما ..

فقط قم بتنفيذ الأوامر التالية :

google_protectAndRun("ads_core.google_render_ad", google_handleError, google_render_ad);
رمز Code:
cat ./vb4-latin1.sql | sed 's/SET NAMES latin1/SET NAMES utf8/g' > tmp
cat ./tmp > ./vb4-latin1.sql
rm -f ./tmp

cat ./vb4-latin1-blob.sql | sed 's/SET NAMES latin1/SET NAMES utf8/g' > tmp
cat ./tmp > ./vb4-latin1-blob.sql
rm -f ./tmp

cat ./vb4-latin1.sql | sed 's/CHARSET=latin1/CHARSET=utf8/g' > tmp
cat ./tmp > ./vb4-latin1.sql
rm -f ./tmp

cat ./vb4-latin1-blob.sql | sed 's/CHARSET=latin1/CHARSET=utf8/g' > tmp
cat ./tmp > ./vb4-latin1-blob.sql
rm -f ./tmp

cat ./vb4-latin1.sql | sed 's/CHARACTER SET latin1 COLLATE latin1_bin/CHARACTER SET utf8 COLLATE utf8_bin/g' > tmp
cat ./tmp > ./vb4-latin1.sql
rm -f ./tmp

cat ./vb4-latin1-blob.sql | sed 's/CHARACTER SET latin1 COLLATE latin1_bin/CHARACTER SET utf8 COLLATE utf8_bin/g' > tmp
cat ./tmp > ./vb4-latin1-blob.sql
rm -f ./tmp

كل ما سبق كان الغرض منه كما ذكرت تغيير محتويات الملفين السابقين ليشيران إلى أنهما من نوع utf8 ..

ولكن هل هذا يكفي ؟؟

بالطبع لا .. لأن محتويات القاعدة لازالت latin1 ، وإن كانت تشير إلى utf8 ..

والحل هنا استخدام الدالة iconv .. على الملف الأول ، والذي يحتوي على المشاركات ..

وذلك بالأمر التالي :

رمز Code:
iconv -c -f windows-1256 -t utf-8 vb4-latin1.sql > vb4-utf8.sql
وكأنني أخبره أن المدخلاتالحالية في قاعدة البيانات مدخلة بترميز windows-1256 ، وأريد منك أنتحوله لـ utf-8 ، وذلك بأخذها من الملف vb4-latin1.sql ووضعها بالملفالجديد vb4-utf8.sql ..

الأمر بسيط .. لكن سيأخذ بعض الوقت ..

لكن بالطبع لن يأخذ يوماً أو يومين ، وإنما سيأخذ وقتاً بحسب حجم المنتدى ، ولكن كمنتدى متوسط الحجم لن يزيد على 5 - 15 دقيقة .. تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH Cupidarrow ، وهنا الروعة ..

كل ماهو مطلوب منا الآن هو إنشاء قاعدة بيانات جديدة .. من لوحة تحكم الموقع حتى يتم إستعادة البيانات الجديدة فيها ..

وبعد ذلك نستخدم الأوامر التالية لإستعادة القاعدة ..

رمز Code:
mysql -u root -p --max_allowed_packet=1024M database_vb2 < vb4-utf8.sql
mysql -u root -p --max_allowed_packet=1024M database_vb2 < vb4-latin1-blob.sql

أخيراً ..

تم تحويل قاعدة البيانات بالكامل إلى utf-8 ..

وبقي لنا ثلاثة خطوات بسيطة فقط لإنهاء العمل بشكل كامل ..


1- إزالة علامة // من ملف كونفيق قبل العبارة التالية :
رمز Code:
$config['Mysqli']['charset']='utf8';
2- تحويل ملف اللغة إلى UTF-8 ، وذلك بتحميل برنامج notepad++

ثم فتح ملف اللغة ( من أخونا ضيف المهاجر ) ..

ثم من قائمة Format ==> convert To UTF-8

ثم حفظه ورفعه كلغة جديدة في المنتدى ..

3- وهي الخطوة الأخيرة الدخول لإعدادات ملف اللغة في لوحة تحكم المنتدى وتغيير الترميز من windows-1256 إلى UTF-8 ..

وبالتالي نكون قد انتهينا بحمد الله تعالى من تحويل قاعدة البيانات بشكل كامل ..

وهذا المثال الذي عملت عليه بالأمس [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

ملحوظة : بعد رفع ملف config الجديد بعد إزالة // منه ..

سيلاحظ البعض وجود مشكلة في المنتدى والحل بسيط جداً برفع ملف tools.php الموجود في مجلد المنتدى /do_not_upload إلى المجلد admincp

ثم الضغط على العبارات الثلاثة التي يوجد فيها cash ..

والحمد لله على توفيقه ..

أخذ مني هذا الموضوع جهداً كبيراً .. فلا تبخلوا علينا بدعاء في ظهر الغيب ..
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://da3me-1.yoo7.com
ayoubzegh
عضو جديد
عضو جديد



المساهمات : 5
تاريخ التسجيل : 28/12/2010

تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH Empty
مُساهمةموضوع: رد: تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH   تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH Emptyالثلاثاء ديسمبر 28, 2010 4:12 am

مشكورررررررررررررررررررررررررر
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
تحويل قاعدة بيانات vb4 إلى ترميز UTF-8 بواسطة SSH
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» الان مجانا قاعدة بيانات دليل نواحي تحتوي على 11645موقع
» التبليغ عن الروابط المعطوبة بواسطة الزوار والاعضاء
» شرح تحويل منتداك من php الى htm
» طريقة زرع قاعده بيانات ضخمة في السيرفر الشخصي في عشرة دقائق
» تحويل اسم العضو بـ أكواد html الرائعة

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
شركة الدعم و تطوير المنتديات :: دعم و تطوير منتديات :: منتدى تطوير 4.0.0 vBulletin الجيل الرابع :: قسم شروحات الجيل الرابع-
انتقل الى: