English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

أسلوب ممتاز لتحديث MySQL

أضافت MySQL 5.7 العديد من الميزات الجديدة، مثل: Online DDL، نسخ متعددة المصادر، تعزيز半 التزام، نقل مساحة العمل، مكتبة sys، تكرار المجموعات وغيرها. أخيرًا، حصلت على فرصة لترقية MySQL إلى 5.7، وكانت متحمسة جدًا.

مقدمة لترقية MySQL

المعنى الحقيقي لترقية MySQL:

ترقية قائمة المفردات

قائمة المفردات تشمل: mysql، information_schema، performance_schema، sys schema.

طريقتان لترقية MySQL:

in-place upgrade:

مناسب للترقيات الصغيرة.

أي: إغلاق MySQL الحالي، استبدال ملفات أو حزم الثنائية الحالية، إعادة تشغيل MySQL على مجلد البيانات الحالي، ثم تشغيل mysql_upgrade.

خصائص: لا يتغير ملفات البيانات، سرعة الترقية عالية؛ ولكن، لا يمكن الترقية عبر نظام التشغيل، لا يمكن الترقية عبر إصدارات كبيرة (5.5—>5.7).

logical upgrade:

مناسب لتحديث MySQL عبر أنظمة التشغيل المختلفة، بين الإصدارات الكبيرة.

بمعنى: باستخدام mysqldump أو mydumper لاستيراد وإخراج البيانات، لتحقيق تحديث الإصدار.

الميزات: يمكنه العمل عبر أنظمة التشغيل المختلفة، عبر الإصدارات الكبيرة؛ ولكن، سرعة التحديث بطيئة، ويمكن أن تحدث مشاكل مثل الترميز الملتوية.

التحضير قبل التحديث:

إجراء النسخ الاحتياطي مسبقًا.

فهم معلومات تغيير النسخة الجديدة (ما لم يعد متوافقًا، ما لم يعد يدعم ماذا)

في المعلومات العامة على الموقع الرسمي —> ما الجديد في mysql 5.7

ملاحظات التحديث:

تأكد من أن النسخة الجديدة تحتوي على تغييرات هامة

الانتباه على تغييرات SQL mode

مثلًا: في MySQL5.7، حدث تغيير في SQL mode، للنماذج SQL التي لم تعد تدعمها، قد لا يتم تشغيل بعض النماذج SQL، في هذه الحالة يمكن إزالة SQL mode، تشغيلها بعد ذلك وإعادة تعيين SQL mode.

بعد نجاح التحديث، تأكد من أن SQL الخاص بالعمليات التجارية يمكن تشغيله

هل البرنامج في الطبقة البرمجية يعمل بشكل طبيعي

في بعض الأحيان، لا يدعم البرنامج الذي يستخدمه المستخدم الآن بعض ميزات قاعدة البيانات الجديدة. مثلًا، عند إصدار 5.1 كان يستخدم PHP 4.0، لكن عند التحديث إلى 5.6، لم يتم دعم بعض وظائف PHP.

بعد اكتمال التحديث، تأكد من استخدام نفس البرنامج في الاختبار كالنسخة الحالية، لتحديد ما إذا كانت هناك مشاكل.

تغيير محركات التخزين

مثلًا: في إصدار 5.8 القادم، لم يعد يدعم محرك myisam.

الانتباه على مشاكل ترميز الأحرف

الخطوة التالية هي، باستخدام طريقة التحديث المكاني، تحديث MySQL5.6 إلى MySQL5.7.

تحديث مكاني (In-place upgrade) لتحديث MySQL

البيئة:

5.6.15 —>5.7.20

التحضير قبل التحديث:

النسخ الاحتياطي + الانتباه على تغييرات النسخة الجديدة
عملية التحديث:

1、للبرنامج 5.7، تنزيل، تفريغ

# tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql5.7

2、إغلاق MySQL الحالي (5.6)

# mysql -u root -p -S /data/mysql3308/mysql3308.sock --execute="SET GLOBAL innodb_fast_shutdown=0"
# mysqladmin -u root -p -S /data/mysql3308/mysql3308.sock shutdown

3、تبديل ملفات الثنائية (5.7 تبديل 5.6)

# cd /usr/local
# mv mysql mysql5.6
# mv mysql5.7 mysql

4. تشغيل MySQL باستخدام مجلد البيانات الحالي

# mysqld_safe --user=mysql --socket=/data/mysql3308/mysql3308.sock -p --skip-grant-tables --datadir=/data/mysql3308/data

5. فحص ما إذا كانت جميع الجداول متوافقة مع الإصدار الحالي وتحديث المكتبة النظامية

# mysql_upgrade -uroot -p -S /data/mysql3308/mysql3308.sock
ملاحظة: وظيفة mysql_upgrade هي فحص جميع الجداول في جميع المكتبات لتحديد ما إذا كانت متوافقة مع الإصدار الحالي وتحديث المكتبة النظامية.

6. إعادة التشغيل، لضمان أن يتم تطبيق التغييرات التي تم إجراؤها على الجداول النظامية

# mysqld --defaults-file=/data/mysql3308/my3308.cnf &
# mysql -uroot -p -S /data/mysql3308/mysql3308.sock

إلى هنا، تم إكمال التحديث.

سؤال: ماذا يحدث إذا فشل التحديث لـ MySQL؟

عند القيام بالتحديث، عادة ما يتم إنشاء مكتبة فرعية للتحديث، إذا فشل التحديث، لن يؤثر ذلك على المكتبة الرئيسية؛ إذا تم نجاح التحديث، ونجاح الاختبار، سيتم تحديث المكتبات الفرعية الأخرى أيضًا إلى إصدار جديد، وأخيرًا سيتم إيقاف التشغيل للمكتبة الرئيسية، ورفع مكتبة فرعية كمكتبة رئيسية جديدة، وتحديث إصدار المكتبة الرئيسية.

بيان: محتويات هذا المقال تم جمعها من الإنترنت، ملكية حقوق الطبع والنشر مملوكة للمالك الأصلي، تم جمع المحتويات بواسطة مساهمات المستخدمين عبر الإنترنت، ويحمل الموقع حقوق الملكية، لم يتم تعديل المحتويات بشكل يدوي، ولا يتحمل الموقع أي مسؤولية قانونية ذات صلة. إذا اكتشفت محتويات تتضمن انتهاك حقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال '#' بـ '@') للإبلاغ، وقدم الدليل على الدليل، إذا تم التحقق من ذلك، سيتم حذف المحتويات المزعجة فورًا.

مفضل لك