×

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

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

قديمة 28 - 12 - 2009, 12:47
المشاركة 1
بسم الله الرحمن الرحيم

بحثت كثيراً عن طريقة لتحويل قاعدة بيانات المنتدى إلى 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 ، وذلك بالمرور على الملفين السابق إعدادهما ..

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

رمز 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=utf8/CHARSET=utf8/g' > tmp
cat ./tmp > ./vb4-latin1.sql
rm -f ./tmp

cat ./vb4-latin1-blob.sql | sed 's/CHARSET=utf8/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 دقيقة .. ، وهنا الروعة ..

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

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

رمز 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 ..

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

وهذا المثال الذي عملت عليه بالأمس www.msarat.ws

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

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

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

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

أخذ مني هذا الموضوع جهداً كبيراً .. فلا تبخلوا علينا بدعاء في ظهر الغيب ..

أخوكم

عبدالرحمن

مؤسسة التكنولوجيا الماسية
www.dt4it.com
التعديل الأخير كان بواسطة قمة ايفرست; 28 - 12 - 2009 الساعة 13:22
المشاهدات 28169 | التعليقات 183
قديمة 28 - 12 - 2009, 13:20
المشاركة 2
صورة 'الفني هوست' الرمزية
الفني هوست
:: عضو نشيط ::
تاريخ الإنضمام: 05 - 06 - 2008
رقم العضوية : 59329
الدولة : المملكة العربية السعودية
المشاركات: 294
افتراضي
يعطيك العافية

شرح وافي وكافي بارك الله فيك

سيتم التطبيق على احد المنتديات لتجربة
اسم الشركه : الفني هوست لخدمات الويب المتكامل
صاحب الشركه : عبدالمحسن ابراهيم
أداء الشركـــه : دعم فني - برمجة
بريد الشركـــه : [email protected]
سكاي بي: AlfnyHost
هاتف الشركه : من داخل السعودية / 035830052 من خارج السعودية / 0096635830052
الدعم الفنــــي : http://www.alfnyhost.com/submitticket.php
قديمة 28 - 12 - 2009, 16:20
المشاركة 3
صورة 'Golden Eng' الرمزية
Golden Eng
:: عضو فعال ::
تاريخ الإنضمام: 17 - 07 - 2009
رقم العضوية : 68995
المشاركات: 160
افتراضي
شـكــ وبارك الله فيك ـــرا ... لك مني أجمل تحية
قديمة 28 - 12 - 2009, 16:40
المشاركة 4
صورة 'webcss' الرمزية
webcss
:: عضو نشيط ::
تاريخ الإنضمام: 02 - 05 - 2007
رقم العضوية : 36072
الدولة : APPSERV
العمر: 29
المشاركات: 1,852
افتراضي
يعطيك العافية

شرح وافي وكافي بارك الله فيك
قديمة 28 - 12 - 2009, 16:56
المشاركة 5
أخ فى الله
:: عضو نشيط ::
تاريخ الإنضمام: 12 - 06 - 2005
رقم العضوية : 5055
الدولة : مصر
العمر: 31
المشاركات: 501
افتراضي
بارك الله فيك أخى الحبيب وجزاك الله خيرا
قديمة 28 - 12 - 2009, 17:31
المشاركة 6
shade alalhan
:: عضـــو::
تاريخ الإنضمام: 15 - 10 - 2009
رقم العضوية : 72331
الدولة : بريدة
المشاركات: 45
افتراضي
مشكور يعطيك اعلاقية
قديمة 28 - 12 - 2009, 17:46
المشاركة 7
صورة 'alshakicom' الرمزية
alshakicom
:: عضو نشيط ::
تاريخ الإنضمام: 16 - 05 - 2005
رقم العضوية : 4368
الدولة : الرياض
المشاركات: 4,073
قديمة 28 - 12 - 2009, 17:58
المشاركة 8
صورة 'شريان الحب' الرمزية
شريان الحب
:: عضو نشيط ::
تاريخ الإنضمام: 08 - 01 - 2009
رقم العضوية : 65003
الدولة : سلطنة عمان
المشاركات: 581
افتراضي
الف شكر لك يالغالي

وتستاهل تقييم
اسم الشركة: نبض عمان
اسم صاحب الشركة: كمال سالم الغافري
الخدمات: تصميم ,استضافه ,دعم فني ,ارشفه ,برمجه
البريدالاكتروني: [email protected]
رقم الهاتف: 0096892592811
خدمات التصميم: www.des.2oman.net
باقي الخدمات: www.2oman.net
صفحتنا على الفيس بوك : http://www.facebook.com/oman.pulse

قديمة 28 - 12 - 2009, 18:23
المشاركة 9
صورة 'FaiSao' الرمزية
FaiSao
:: عضو نشيط ::
تاريخ الإنضمام: 22 - 01 - 2008
رقم العضوية : 50723
الدولة : K.S.A
العمر: 33
المشاركات: 563
افتراضي
الف شكر لك ياخوي على الشرح ..

بس ياخوي .. وش الفايدهـ من التحويل هذا .. ترانا غشيمين بالترميز وانا اخوكـ ..!
قديمة 28 - 12 - 2009, 18:29
المشاركة 10
منتديات الشقة
:: عضـــو::
تاريخ الإنضمام: 03 - 01 - 2008
رقم العضوية : 48600
المشاركات: 68
افتراضي
الف شكر لك اخوي
قديمة 28 - 12 - 2009, 18:31
المشاركة 11
صورة 'الجينرال' الرمزية
الجينرال
:: عضو فعال ::
تاريخ الإنضمام: 09 - 05 - 2008
رقم العضوية : 58831
المشاركات: 137
قديمة 28 - 12 - 2009, 18:38
المشاركة 12
قمة ايفرست
:: عضو فعال ::
تاريخ الإنضمام: 11 - 11 - 2004
رقم العضوية : 372
المشاركات: 134
افتراضي
الف شكر لك ياخوي على الشرح ..

بس ياخوي .. وش الفايدهـ من التحويل هذا .. ترانا غشيمين بالترميز وانا اخوكـ ..!

حياكم الله جميعاً ..

لها عدة فوائد ، وأهم فوائدها الأرشفة ..

وبالتالي تظهر الروابط بالعربي ، وبالنسبة لي هذه الخاصية تكفي لأتحمل العناء ..

وأعود لأشكركم جميعاً مرة أخرى ..
قديمة 28 - 12 - 2009, 22:27
المشاركة 13
صورة 'FaiSao' الرمزية
FaiSao
:: عضو نشيط ::
تاريخ الإنضمام: 22 - 01 - 2008
رقم العضوية : 50723
الدولة : K.S.A
العمر: 33
المشاركات: 563
افتراضي
طيب ما عليش ..

شرحك هذا لاهــل الخبرة ..


انا مافهمت .. تقدر تشرح بالصور .. ولا وش نسوي بالضبط ..


ما عليش تحملني .. بس ما ادري وين ازرع هالاوامر .. على قاعدة البيانات ... والا كيف ..؟
قديمة 28 - 12 - 2009, 22:46
المشاركة 14
قمة ايفرست
:: عضو فعال ::
تاريخ الإنضمام: 11 - 11 - 2004
رقم العضوية : 372
المشاركات: 134
افتراضي
طيب ما عليش ..

شرحك هذا لاهــل الخبرة ..


انا مافهمت .. تقدر تشرح بالصور .. ولا وش نسوي بالضبط ..


ما عليش تحملني .. بس ما ادري وين ازرع هالاوامر .. على قاعدة البيانات ... والا كيف ..؟

حياك الله عزيزي ..

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

وهي أفضل طريقة ..

وأعتقد أن بإمكان المستضيف أن ينفذها طالما أعطيته إياها ..

لك ودي وتقديري
قديمة 28 - 12 - 2009, 23:11
المشاركة 15
صورة 'FaiSao' الرمزية
FaiSao
:: عضو نشيط ::
تاريخ الإنضمام: 22 - 01 - 2008
رقم العضوية : 50723
الدولة : K.S.A
العمر: 33
المشاركات: 563
افتراضي
اهاااااااااا


لا ذي من المستضيف ..


عساهـ يرد المستضيف علينا بس ..


يسلمووووووو اخووي .. واسفين ع اللجهـ الزائدهـ ^_^
 
اضافة رد
 

مشكلة في الاستايللات كود اظهار زر اخر المواضيع في الناف بار

أدوات الموضوع ابحث في الموضوع
ابحث في الموضوع:

البحث المتقدم
طرق العرض


الساعة معتمدة بتوقيت جرينتش +3 . الساعة الآن : 00:30.
المعهد غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي معهد ترايدنت ولا نتحمل أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

جميع الحقوق محفوظة Traidnt 2019
  • 00966138651070
  • 00966138648289
  • 2051033691
Powered by vBulletin® Version 3.8.11 .Copyright ©2000 - 2019, Jelsoft Enterprises Ltd
SEO by vBSEO ©2011, Crawlability, Inc.