Bitrix va MariaDB so'nggi barqaror versiyaga yangilanadi

Xayrli kun, aziz Xabrovskliklar! O'zimni tanishtiraman, Aleksandr. Bitta kichik, ammo mag'rur WEB studiyasining tizim ma'muri. Biz haqiqatan ham hamma narsa tez, xavfsiz va eng yangi dasturiy ta'minot bilan ishlashini xohlaymiz. Buning uchun biz hatto ofis ichidagi kompyuterga nagios+PhantomJS to'plamini o'rnatdik va har 30 daqiqada sahifani yuklash tezligini tekshirib ko'rdik. Xizmat ko'rsatish shartlariga ko'ra, biz 1C-Bitrix yangilanishlarini ham kuzatib boramiz va ularni muntazam ravishda o'rnatamiz. Va keyin bir kun, keyingi yangilanishdan so'ng, biz administrator panelida 2019 yilning yozidan boshlab 1C-Bitrix MySQL 5.5 bilan ishlashni to'xtatganligi va biz yangilashimiz kerakligi haqida xabarni ko'ramiz. ISPSystem yigitlari chiroyli va muntazam ravishda panelning funksionalligini kengaytiradilar, buning uchun ularga alohida rahmat. Lekin bu safar hamma narsani sichqoncha bilan bosishning iloji bo'lmadi. Lekin nima bo'lganini va soqolimda kesilgan ostida qancha kulrang sochlar borligini bilib olishingiz mumkin.

Faqat Docker konteyneriga o'rnatilgan "muqobil DBMS serverini" o'rnatish imkoniyati mavjud edi. Albatta, men Docker resurslarga juda tejamkor ekanligini tushunaman, lekin u qanchalik yaxshi ishlamasin, qo'shimcha xarajatlar > 0 bo'ladi. Va bu erda biz o'ndan soniyalarda kurashayotganga o'xshaymiz va ularni nashr etish va shartnoma imzolashdan oldin kirish joyidagi barcha saytlarni optimallashtirish. Demak, mening variantim emas.
OK, hujjatlar nima deydi? Hamma narsani zaxiralang, MariaDB omboriga havola bilan yum.repos.d ga fayl qo'shing, so'ng

rpm -e --nodeps MariaDB-server MariaDB-client MariaDB-common

Keyinchalik Yum qasamyod qiladiki, kimdir o'zi bilmagan holda paketlarni o'chirib tashlagan. Lekin birinchi navbatda, u qasam ichsin, hammasi joyida. Ikkinchidan, yum orqali o'chirishni amalga oshirsangiz, u MariaDB bilan birga unga bog'liq bo'lgan barcha narsalarni o'chirishga harakat qiladi va bunga PHP va ISPManager va PHPmyadmin kiradi. Shuning uchun, biz qasam ichish bilan keyinroq shug'ullanamiz.


yum clean all
yum update
yum install MariaDB-server MariaDB-client MariaDB-common

Umuman olganda, hamma narsa o'rnatildi va ishga tushirildi. Yaxshi tomoni shundaki, ma'lumotlar bazalari yig'ildi va ularni axlatxonalardan tiklashning hojati yo'q edi. Men saytlarni tekshirdim - ular ishlaydi va tez. Hech narsa tushib qolmaganiga ishonch hosil qilish uchun bir nechta administrator joylariga bordim va direktorga hammasi joyida ekanligini yozdim. 30 daqiqadan kamroq vaqt o'tgach, hammasi yaxshi emasligi ma'lum bo'ldi ...

Men administrator maydoniga kirib, kontentga biror narsani qo‘shish va tahrir qilmoqchi bo‘lganimda, xabar paydo bo‘ldi

MySQL Query Error: INSERT INTO b_iblock_element_property (ID, IBLOCK_ELEMENT_ID, IBLOCK_PROPERTY_ID, VAL UE, VALUE_NUM) SELECT 10555 ,2201 ,P.ID ,'3607' ,3607.0000 FR OM b_iblock_property P WHERE ID = 184 [[1062] Duplicate entry '10555' for key 'PRIMARY']

Saytdagi tarkib o'z xodimlarimiz tomonidan qo'shilganligi sababli, mijozlar hali hech narsani bilishmagan va bizni ajratishni boshlashmagan. Ammo bu vaqt masalasi edi, chunki saytlardagi ma'lumotlar yangilanishi kerak va ko'plab mijozlar buni o'zlari diqqat bilan kuzatib boradilar.

Xato matnidan xulosa qilishimiz mumkinki, Bitrix tahrir qilinayotgan maqoladagi bir xil asosiy kalitni ko'rsatgan holda ma'lumotlar bazasiga yangi yozuv qo'shishga harakat qilmoqda. Bu muammo Bitrix tomonida paydo bo'lganiga shubha qilish uchun asos borligini anglatadi. Biz ularning veb-saytiga o'tamiz va yordamga murojaat qilamiz. Deyarli darhol biz "murakkab muammo" degan javobni olamiz. Katta muhandislarga berdim - kuting ... "

Biz ancha vaqt kutishimiz kerak edi (butun muloqot 25.06.2019-yil 9.07.2019-iyundan 10.4.6-yil XNUMX-iyulgacha bo‘lib o‘tdi) va natijada “bu muammo Bitrix CMS-ning ishlashi bilan bog‘liq emas, balki u bilan bog‘liq” degan xabar paydo bo‘ldi. ma'lumotlar bazasining o'zi mariadb XNUMX da ishlashi va afsuski, sayt tomonida bu muammoni hal qilishning iloji yo'q; MariaDB ning eski versiyasiga o'tishingiz kerak bo'ladi.

Ular yetib kelishdi... Hikoyaning boshida pastga tushirish haqida o‘yladim, lekin buni oq va qora rangda aytadihech qanday pasaytirish bo'lishi mumkin emas. To'liq o'rnatilgan serverda axlatlarni tashlang va qayta joylashtiring. Bular. Barcha serverlarni birdaniga yangilamaganim yaxshi. Bular. "faqat" yuzta sayt (asabiy kulgi :-)). Qo'llab-quvvatlash, shuningdek, shunday dedi: "MariaDB 10.4.6 ma'lumotlar bazasidan foydalanishda muammoni hal qilish uchun siz MariaDB texnik yordamiga murojaat qilishingiz kerak, agar so'rov qilingan bo'lsa, tranzaktsiya ma'lumotlar bazasidan yozuvni o'chirib tashlamaydi:

$DB->Query("DELETE FROM ".$strTable." WHERE ID = ".$res["ID"]);
$results = $DB->Query("SELECT * FROM ".$strTable." WHERE ID = ".$res["ID"]);”

MariaDB qo'llab-quvvatlashi bilan aloqa o'rnatishni boshlaganimdan boshlab umid bir necha soat davomida porladi, lekin keyin men xat oldim, unda ular menga juda to'g'ri aytishdi, men tijorat foydalanuvchi emasman va shuning uchun hech kim mening muammomni maqsadli ravishda hal qilmaydi, lekin bor. ularning veb-saytida forum va u erda siz variantlarni izlashga harakat qilishingiz mumkin ... Men sizni tafsilotlar bilan zeriktirmayman. U erda variantlar yo'q.
HAQIDA! Biz ISP litsenziyasini sotib oldik!
- Salom, qo'llab-quvvatlaysizmi? Bolalar, yordam bering!
— Kechirasiz, biz DBMSning mahalliy versiyalarini o'zgartiradigan nopoklarni qo'llab-quvvatlamaymiz. Agar xohlasangiz, Docker-da muqobil server bilan variant mavjud.
— Lekin foydalanuvchilar va maʼlumotlar bazalari u yerga qanday yetib boradi? Dokergami?
- Xo'sh, siz ularni qo'lingiz bilan u erga sudrab kelasiz ...
- Ha! Va unutmangki, MySQL uchun port o'zgaradi va siz barcha konfiguratsiyalardan o'tib, ularni qayta yozishingiz kerak bo'ladi.
- Mayli, rahmat, o'ylab ko'raman...
Men bu haqda o'yladim va 10.4 ni qo'lda buzishga va boshqa serverlarda hech qanday muammo bo'lmagan 10.2 ni o'rnatishga qaror qildim.

Jarayon yangilanish jarayonidan unchalik farq qilmadi. Men faqat omborga havolada 10.4 dan 10.2 gacha o'zgartirishim kerak edi, yum uchun keshni qayta o'rnatish va qayta yaratish kerak edi. Xo'sh, yana bir "kichik narsa": 10.4 ni olib tashlaganingizdan so'ng, /var/lib/mysql ga o'ting va u yerdan hamma narsani o'chiring. 10.2 ni o'rnatgandan so'ng, ushbu qadamsiz xizmat doimiy ravishda ishdan chiqadi va siz ko'rasiz

Не удалось подключиться к базе данных '' Lost connection to MySQL server at 'reading initial communication packet', system error: 104 "Connection reset by peer"

Yoki

Lost connection to MySQL server at 'handshake: reading inital communication packet', system error: 104

Ma'lumotlar bazalarini import qilishdan oldin, men birinchi navbatda ISP konfiguratsiyasida ko'rsatilgan MySQL uchun ildiz parolini o'rnatdim va MySQL ma'lumotlar bazasi dumpini import qildim. Xo'sh, bizda allaqachon foydalanuvchilar va huquqlar mavjud bo'lganligi sababli, biz ildiz hisob qaydnomasi yordamida barcha foydalanuvchi ma'lumotlar bazalarini ketma-ket import qilamiz.

Ma'lumotlar bazasini tashlab yuborish uchun skript matni:

#!/bin/bash
echo 'show databases' | mysql -u root --password="ПаРоЛь_РУТА" --skip-column-names | grep -v information_schema | xargs -I {} -t bash -c 'mysqldump -u root --password="ПаРоЛь_РУТА" {} | gzip > /BACK/back-$(hostname)-{}-$(date +%Y-%m-%d-%H.%M.%S).sql.gz'

Ma'lumotlar bazalarini import qilishdan oldin siz ularni ochishingiz kerak. Shunday qilib, biz faqat buyruqni bajaramiz

gunzip /BACK/*.gz

Va nihoyat: negadir ma'lumotlar bazasi nomida tire qo'yishga ruxsat beriladi (agar siz uni ISPmanager orqali yaratsangiz). Ammo nomida tire bo'lgan ma'lumotlar bazasiga dump yaratganingizda yoki yuklashga urinayotganingizda, so'rov sintaksisi noto'g'ri ekanligi haqida xabar olasiz.

Oxirigacha o'qiganlarga eng yaxshi tilaklar. Noto'g'ri qo'yilgan vergullar uchun uzr so'rayman - ular muammo. Agar sizda tasvirlangan narsaning mohiyati bo'yicha biron bir taklifingiz bo'lsa, shaxsiy xabarda yozing, chunki men izohlarda biror narsani o'tkazib yuborishdan qo'rqaman. Va ko'p qasam ichmang - bu mening birinchi maqolam :)

UPD1:

Men deyarli eslatib qo'yishni unutib qo'ydim: MariaDB-ni pasaytirmasdan muammoga yechim topishga harakat qilganimda, ma'lumotni qandaydir yangilashim kerak edi. Bu shunday yangilandi: butun ma'lumotlar bazasi InnoDB dan MyISAM ga o'zgartiriladi, ma'lumotlar yangilanadi va keyin yana InooDB ga aylantiriladi.
UPD2:

Men hozirgina 1C-Bitrix-dan quyidagi mazmundagi xat oldim:

Qayta ko'rib chiqish so'rovi yakunlandi
"Mariadb-ni 10.4.6-ga yangilagandan so'ng, infoblok elementini saqlashda xatolik yuz berdi"
Modul: iblock, versiya: noma'lum
Yechim: rad etildi

Demak, hozircha 10.4 ga yangilash imkonsiz ekan 🙁

Manba: www.habr.com

a Izoh qo'shish