النتائج 1 إلى 10 من 10

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

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    582

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



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

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

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

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

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

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

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

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

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

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

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

    كود:
    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

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

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

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

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

    كود:
    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 .. على الملف الأول ، والذي يحتوي على المشاركات ..

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

    كود:
    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 دقيقة .. ، وهنا الروعة ..

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

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

    كود:
    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- إزالة علامة // من ملف كونفيق قبل العبارة التالية :
    كود:
    $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
    الرياض - شارع الضباب
    so @ dt4it.com


  2. #2
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    553


    بورك فيك عزيزي ... جاري التجربة





    __________________
    اللهم اغفر لي الذنوب التي تهتك العصم
    اللهم اغفر لي الذنوب التي تنزل النقم
    اللهم اغفر لي الذنوب التي تغير النعم
    اللهم اغفر لي الذنوب التي تحبس الدعاء
    اللهم اغفر لي الذنوب التي تنزل البلاء .

  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2000
    المشاركات
    3,248


    مشكور اخوي وياليت لو احد من الشباب يجرب ويرد لنا خبر

    وعلى فكرة فيبولتين ناوين يعملون منتج لتحويل المنتدى لليوتي اف8 بس مو محددين وقت ولسع ما كمل
    However, we will continue to support issues with other character sets until we are completely confident that we are providing a robust set of tools to allow everyone to migrate to UTF-8.
    http://www.vbulletin.com/forum/entry...acter-Encoding






  4. #4


    الله يعطيك العافية .. انا واحد حول لي القاعدة الى " UTF-8 " علشان احول الروابط للغة العربية .. ولكن تظهر لي بعض الأحيان اخطاء مثل هذي " صورة المرفق" خصوصاً في الهاكات ..

    فما الحل بارك الله فيك

    http://www.sa-uf.com/vb





    الصور المرفقة الصور المرفقة    
    التعديل الأخير تم بواسطة سلطان المالكي ; 28-12-2009 الساعة 11:51 PM

  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    582


    الله يعطيك العافية .. انا واحد حول لي القاعدة الى " UTF-8 " علشان احول الروابط للغة العربية .. ولكن تظهر لي بعض الأحيان اخطاء مثل هذي " صورة المرفق" خصوصاً في الهاكات ..

    فما الحل بارك الله فيك

    http://www.sa-uf.com/vb
    بسيطة يا عزيزي بإذن الله ..

    في البداية حمل برنامج notepad++

    ابحث عنه في جوجل ..

    قم بفتح ملف الهاك من البرنامج .. ثم

    Formal ==> convert to UTF-8

    واستمتع





    __________________
    التكنولوجيا الماسية
    برمجة برامج خاصة-استضافةوتصميم مواقع-برمجة مواقع-تصميم وتركيب منتديات
    www.dt4it.com
    الرياض - شارع الضباب
    so @ dt4it.com

  6. #6


    شكراً لك ..

    واسف راسلتك بالبريد .. بس انحلت المشكلة على يد عزيزي الغالي " MARCO1 "





    التعديل الأخير تم بواسطة سلطان المالكي ; 29-12-2009 الساعة 05:11 AM

  7. #7


    اخي الكريم شكرآ على هذا الشرح الوافي , ولكن لا انصح اي شخص لا يعرف في امور واعدادات السيرفرات والتعامل مع الـSSH ارجو لا يخاطر فمن الممكن تخريب شئ مهم وبالتالي يروح جهد والتعب .





    __________________
    حسابي فيسبوك
    https://www.facebook.com/ahmedo.vip/

    المبرمج
    http://www.almprmg.com/

    شركة اوريكو لتكنولوجيا المعلومات - استضافة وبرمجة المواقع | خدمات السوشيال ميديا
    http://www.orico.com.eg

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Oct 2003
    المشاركات
    582


    اخي الكريم شكرآ على هذا الشرح الوافي , ولكن لا انصح اي شخص لا يعرف في امور واعدادات السيرفرات والتعامل مع الـSSH ارجو لا يخاطر فمن الممكن تخريب شئ مهم وبالتالي يروح جهد والتعب .
    حياك الله أخي أحمد ..

    كلامك سليم .. لكن للعلم العمل كله على ملف قاعدة بيانات يتم إنشاؤه ، وليس على قاعدة بيانات مباشرة ..





    __________________
    التكنولوجيا الماسية
    برمجة برامج خاصة-استضافةوتصميم مواقع-برمجة مواقع-تصميم وتركيب منتديات
    www.dt4it.com
    الرياض - شارع الضباب
    so @ dt4it.com

  9. #9
    عضو جديد
    تاريخ التسجيل
    Apr 2010
    المشاركات
    5


    انا اعاني بسبب رغبتي في تحويل قاعدتي للـ utf8

    أول شي انا قاعدة بياناتي صغيرة عدد اعضائها 100 وعدد المواضيع والردود لاتتجاوز 500

    ولا اكلمك حساب SSH

    احد الاخوان الله يجزاه خير عطاني الرابط هذا وقالي اتبع الشرح
    http://www.vbulletin.org/forum/showthread.php?t=216863

    ولاكن للأسف ثقافتي الاجنبية بسيطه

    اتمنى منك يا اخوان مساعدتي في تحويل قاعدة بياناتي للـ utf8
    وجزاكم الله خير






  10. #10
    عضو نشيط
    تاريخ التسجيل
    May 2010
    المشاركات
    55


    فكرة جيدة الى حد ما و لكنها قد تجهد صاحبها في جميع الاحوال من حيث تحويل الهاكات و اللغات الي utf-8

    و لكنه الترميز العالمي المعتمد

    و موقعي من اول يوم و هو utf-8

    http://www.wa2t.com/vb

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










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض