الانطباعات الأولى والإجراءات بعد ترقية MySQL من الإصدار 5.7 إلى 8.0.11

اتخذ MySQL قرارًا بتحديث قاعدة البيانات بعد القراءة على موقع المطور الذي تم تقديم دعم أكثر شمولًا لـ UTF في الإصدار الثامن. على وجه الخصوص ، يستخدم MySQL 8.0.11 التعبيرات العادية القائمة على ICU ، المكونات الدولية لـ Unicode.

أول شيء لاحظته هو أن حدود الكلمة في التعبيرات العادية لم يعد بالإمكان الإشارة إليها على أنها:

SELECT '' REGEXP '[[:<:]][[:>:]]'; 

يشار إلى حدود الكلمات في الإصدار الجديد على النحو التالي:

 '\\b\\b' 

بالإضافة إلى ذلك ، توقفت LOAD DATA LOCAL INFILE عن العمل ، أي استيراد البيانات من ملف نصي على الكمبيوتر المحلي. اتضح أنه في MySQL 8.0 يتم تعيين المتغير العام local_infile على OFF بشكل افتراضي. يكتبون على موقع المطور أن هذا تم كإجراء أمني. يمكن عرض قيمة هذا المتغير بالأمر التالي:

 SHOW GLOBAL VARIABLES LIKE 'local_infile'; 

لقد قمت بحل هذه المشكلة عن طريق التنفيذ في المحطة:

 SET GLOBAL local_infile = true; 

أي أنها تناسب المحطة في MySQL كالمعتاد:

 mysql -u root -p 

ونفذ الأمر أعلاه.

تحسبًا لذلك ، قمت بتصدير قواعد البيانات إلى PHPMyAdmin بتنسيق SQL في أرشيفات GZ. ولم يندم عليه. لا يعمل ببساطة استبدال ملفات البيانات من 5.7 إلى 8.0.11. الإصدار الثامن لا يتعرف عليهم. وذهب استيراد البيانات من ملفات SQL دون تعليق.

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

Source: https://habr.com/ru/post/ar418899/


All Articles