Bitrix ۽ MariaDB تازه ترين مستحڪم ورزن ڏانهن تازه ڪاري

سٺو ڏينهن، پيارا Khabrovsk رهاڪن! مون کي پنهنجو تعارف ڪرايو، اليگزينڊر. هڪ ننڍڙو پر فخر WEB اسٽوڊيو جو سسٽم ايڊمنسٽريٽر. اسان واقعي چاهيون ٿا ته هر شي جلدي، محفوظ ۽ جديد سافٽ ويئر سان ڪم ڪري. ائين ڪرڻ لاءِ، اسان انٽرا-آفيس ڪمپيوٽر تي ناگيوس+پينٽم جي ايس بنڊل به انسٽال ڪيو ۽ هر 30 منٽن ۾ صفحي جي لوڊشيڊنگ جي رفتار کي چيڪ ڪيو. سروس جي شرطن جي مطابق، اسان پڻ نگراني ڪندا آهيون 1C-Bitrix تازه ڪاريون ۽ انهن کي باقاعده انسٽال ڪريو. ۽ پوءِ هڪ ڏينهن، ايندڙ اپڊيٽ کان پوءِ، اسان ايڊمن پينل ۾ هڪ پيغام ڏسون ٿا ته 2019 جي اونهاري کان وٺي، 1C-Bitrix MySQL 5.5 سان ڪم ڪرڻ بند ڪري ٿو ۽ اسان کي اپڊيٽ ڪرڻ جي ضرورت آهي. ISPSystem جا ماڻهو خوبصورت آهن ۽ باقاعدگي سان پينل جي ڪارڪردگي کي وڌائي رهيا آهن، جنهن لاءِ انهن جا خاص مهرباني. پر هن ڀيري مائوس سان هر شي کي ڪلڪ ڪرڻ ممڪن نه هو. پر توهان اهو معلوم ڪري سگهو ٿا ته ڇا ٿيو آهي ۽ هاڻي منهنجي ڏاڙهيءَ ۾ ڪٽ هيٺان ڪيترا ڳاڙهو وار آهن.

هتي صرف هڪ "متبادل DBMS سرور" کي نصب ڪرڻ جو اختيار هو جيڪو ڊاکر ڪنٽينر ۾ نصب ٿيل آهي. يقينن، مان سمجهان ٿو ته ڊاکر وسيلن سان تمام گهڻو سستي آهي، پر اهو ڪيترو به عظيم ڪم ڪري ٿو، اوور هيڊ اڃا تائين > 0 هوندو. ۽ هتي اسان کي سيڪنڊن جي ڏهين سيڪنڊن ۾ وڙهڻ ۽ انهن کي شايع ڪرڻ ۽ هڪ معاهدي تي دستخط ڪرڻ کان پهريان داخلا تي سڀني سائيٽن کي بهتر ڪرڻ لڳي ٿو. تنهنڪري منهنجو اختيار ناهي.
ٺيڪ آهي، دستاويز ڇا ٿو چوي؟ هر شي جو بيڪ اپ ڪريو، yum.repos.d تي هڪ فائل شامل ڪريو مارڪس ڊي بي مخزن جي لنڪ سان، پوءِ

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

يوم بعد ۾ قسم کڻندو ته ڪنهن ماڻهو هن جي ڄاڻ کان بغير پيڪيجز کي حذف ڪيو. پر سڀ کان پهريان، هن کي قسم کڻڻ ڏيو، اهو ٺيڪ آهي. ۽ ٻيو، جيڪڏهن توهان yum ذريعي حذف ڪريو ٿا، پوء اهو هٽائڻ جي ڪوشش ڪري ٿو، ماريا ڊي بي سان گڏ، هر شيء جيڪا انحصار سان ڳنڍيل آهي، ۽ هن ۾ شامل آهي PHP ۽ ISPManager ۽ PHPmyadmin. تنهن ڪري، اسان بعد ۾ قسم کڻڻ سان معاملو ڪنداسين.


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

عام طور تي، سڀڪنھن شيء کي نصب ۽ شروع ڪيو ويو. سٺي ڳالهه اها آهي ته ڊيٽابيس کي کنيو ويو ۽ انهن کي ڊمپ مان بحال ڪرڻ جي ڪا ضرورت ناهي. مون سائيٽن کي چيڪ ڪيو - اهي ڪم ڪن ٿا ۽ تيز آهن. مان ڪجهه انتظامي علائقن ۾ ويس ته پڪ ڪرڻ لاءِ ته ڪجھ به نه ٿيو آهي ۽ ڊائريڪٽر ڏانهن واپس لکيو ته سڀ ڪجهه ٺيڪ آهي. 30 منٽن کان به گهٽ دير بعد اهو معلوم ٿيو ته اهو ٺيڪ ناهي ...

جڏهن مون ايڊمن ايريا ۾ وڃڻ جي ڪوشش ڪئي ۽ مواد ۾ ڪا به شيءِ شامل ۽ ايڊٽ ڪرڻ جي ڪوشش ڪئي، هڪ پيغام پاپ اپ ٿيو

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']

جيئن ته سائيٽ تي مواد اسان جي پنهنجي ملازمن طرفان شامل ڪيو ويو آهي، گراهڪ اڃا تائين ڪجهه نه ڄاڻندا هئا ۽ اڃا تائين اسان کي ڌار ڪرڻ شروع نه ڪيو آهي. پر اهو وقت جو معاملو هو، ڇاڪاڻ ته سائيٽن تي معلومات کي اپڊيٽ ڪرڻ جي ضرورت آهي، ۽ ڪيترائي گراهڪ پاڻ کي ويجهي نگراني ڪن ٿا.

غلطي جي متن مان، اسان اهو نتيجو ڪري سگهون ٿا ته Bitrix ڊيٽابيس ۾ هڪ نئين داخلا شامل ڪرڻ جي ڪوشش ڪري رهيو آهي جڏهن ته ساڳئي پرائمري ڪيچ کي بيان ڪندي جيڪا آرٽيڪل ۾ ترميم ڪئي وئي هئي. هن جو مطلب اهو آهي ته شڪ ڪرڻ جو سبب آهي ته مسئلو بٽريڪس پاسي تي پيدا ٿئي ٿي. اسان انهن جي ويب سائيٽ تي وڃو ۽ مدد سان رابطو ڪريو. تقريبن فوري طور تي اسان کي جواب ملي ٿو "پيچيده مسئلو. اهو سينئر انجنيئرن کي ڏنو - انتظار ڪريو ..."

اسان کي ڪافي وقت انتظار ڪرڻو پيو (سڄو ڳالهه ٻولهه 25.06.2019 جون 9.07.2019 کان 10.4.6 جولاءِ XNUMX تائين ٿي) ۽ نتيجو اهو نڪتو ته ”هي مسئلو بٽريڪس سي ايم ايس جي آپريشن سان نه پر لاڳاپيل آهي. خود ڊيٽابيس جي آپريشن mariadb XNUMX ۾ ۽، بدقسمتي سان، سائيٽ جي پاسي سان، هن مسئلي کي حل ڪرڻ جو ڪو طريقو ناهي؛ توهان کي مارڪس ڊي بي جي پراڻي ورزن ڏانهن سوئچ ڪرڻو پوندو.

اهي پهچي ويا... مون ڪهاڻيءَ جي شروعات ۾ گهٽجڻ بابت سوچيو، پر اهو چوي ٿو ڪارو ۽ اڇو ۾جنهن ۾ ڪابه گهٽتائي نه ٿي سگهي. ڊمپ ڊمپ ڪريو ۽ مڪمل طور تي نصب ٿيل سرور تي ٻيهر ترتيب ڏيو. اهي. اهو سٺو آهي ته مون هڪ ڀيرو سڀني سرورن کي اپڊيٽ نه ڪيو. اهي. "صرف" هڪ سئو سائيٽون (نروس کلڻ :-)). سپورٽ پڻ چيو: ”مسئلو حل ڪرڻ لاءِ جڏهن ماريا ڊي بي 10.4.6 ڊيٽابيس استعمال ڪندي، توهان کي مارڪس ڊي بي ٽيڪنيڪل سپورٽ سان رابطو ڪرڻ جي ضرورت پوندي ته ٽرانزيڪشن ڊيٽابيس مان رڪارڊ ختم نه ڪندي جيڪڏهن درخواست ڪئي وئي آهي:

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

اميد ڪجھ ڪلاڪن لاءِ چمڪندي رهي جنهن کان پوءِ مون ماريا ڊي بي جي مدد سان رابطو ڪرڻ شروع ڪيو ، پر پوءِ مون کي هڪ خط مليو جنهن ۾ هنن مون کي بلڪل صحيح ٻڌايو ته مان هڪ تجارتي صارف نه آهيان ۽ تنهن ڪري ڪو به مقصد سان منهنجو مسئلو حل نه ڪندو ، پر اتي آهي. انهن جي ويب سائيٽ تي هڪ فورم ۽ اتي توهان اختيارن کي ڳولڻ جي ڪوشش ڪري سگهو ٿا ... مان توهان کي تفصيل سان بور نه ڪندس. اتي ڪي به اختيار نه آھن.
جي باري ۾! اسان هڪ ISP لائسنس خريد ڪيو!
- هيلو، حمايت؟ دوستو، مدد ڪريو!
- معاف ڪجو، اسان اسڪمبگس کي سپورٽ نٿا ڪريون جيڪي ڊي بي ايم ايس جا اصلي نسخا تبديل ڪن ٿا. جيڪڏھن توھان چاھيو ٿا، اتي ھڪڙو اختيار آھي ھڪڙو متبادل سرور سان Docker ۾.
- پر صارفين ۽ ڊيٽابيس ڪيئن حاصل ٿيندا؟ ڊاکر ڏانهن؟
- چڱو، توهان انهن کي پنهنجي هٿن سان اتي ڇڪيو ...
- ها! ۽ اهو نه وساريو ته بندرگاهه mysql لاءِ تبديل ٿي ويندو ۽ توهان کي سڀني ترتيبن مان وڃڻو پوندو ۽ انهن کي ٻيهر لکڻو پوندو.
- ٺيڪ، مهرباني، مان ان بابت سوچيندس ...
مون ان جي باري ۾ سوچيو ۽ دستي طور تي 10.4 کي ختم ڪرڻ ۽ 10.2 کي انسٽال ڪرڻ جو فيصلو ڪيو جنهن سان ٻين سرورن تي ڪو مسئلو ناهي.

اهو عمل تازه ڪاري جي عمل کان گهڻو مختلف نه هو. مون کي صرف 10.4 کان 10.2 کي تبديل ڪرڻو پيو مخزن جي لنڪ ۾، ري سيٽ ڪيو ۽ ٻيهر ٺاهيو ڪيش yum لاءِ. خير، هڪ وڌيڪ "ننڍي شيء": 10.4 کي هٽائڻ کان پوء، وڃو /var/lib/mysql ۽ اتان کان سڀڪنھن شيء کي حذف. 10.2 کي انسٽال ڪرڻ کان پوءِ هن قدم کان سواءِ، سروس مسلسل خراب ٿي ويندي ۽ توهان ڏسندا

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

يا

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

ڊيٽابيس کي درآمد ڪرڻ کان پهريان، مون پهريون ڀيرو mysql لاءِ روٽ پاسورڊ سيٽ ڪيو جيڪو ISP ترتيبن ۾ بيان ڪيو ويو ۽ mysql ڊيٽابيس ڊمپ درآمد ڪيو. خير، پوءِ، جيئن ته اسان وٽ اڳ ۾ ئي استعمال ڪندڙ ۽ حق آهن، اسان صرف روٽ اڪائونٽ استعمال ڪندي هڪ قطار ۾ سڀئي صارف ڊيٽابيس درآمد ڪريون ٿا.

ڊيٽابيس ڊمپ لاءِ اسڪرپٽ متن:

#!/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'

ڊيٽابيس کي درآمد ڪرڻ کان پهريان، توهان کي انهن کي ان زپ ڪرڻ جي ضرورت آهي. تنهنڪري اسان صرف حڪم هلائيندا آهيون

gunzip /BACK/*.gz

۽ آخر ۾: ڪجهه سببن جي ڪري، ڊيٽابيس جي نالي تي هائفن جي اجازت آهي (جيڪڏهن توهان ان کي ISPmanager ذريعي ٺاهيو). پر جڏهن توهان هڪ ڊيٽابيس تي ڊمپ ٺاهي يا اپلوڊ ڪرڻ جي ڪوشش ڪندا آهيو جنهن جي نالي ۾ هڪ هائفن آهي، توهان کي هڪ پيغام ملي ٿو ته درخواست نحو غلط آهي.

آخر تائين پڙهڻ وارن کي ڀليڪار. مان معافي وٺان ٿو سڀ کان وڌيڪ ممڪن غلط ڪمن لاءِ - اهي هڪ مسئلو آهن. جيڪڏهن توهان وٽ بيان ڪيل مضمون جي حوالي سان ڪي تجويزون آهن، هڪ ذاتي پيغام ۾ لکو ڇو ته مون کي ڊپ آهي ته آئون تبصرن ۾ ڪجهه وڃائي ڇڏيندس. ۽ تمام گهڻو قسم نه کڻو - هي منهنجو پهريون مضمون آهي :)

UPD1:

مون تقريباً ذڪر ڪرڻ وساري ڇڏيو: جڏهن مان ماريا ڊي بي کي گهٽائڻ جي بغير مسئلي جو حل ڳولڻ جي ڪوشش ڪري رهيو هوس، مون کي ڪنهن به طرح معلومات کي اپڊيٽ ڪرڻو پيو. اھو ھن طرح اپڊيٽ ڪيو ويو: سڄو ڊيٽابيس InnoDB کان MyISAM ۾ تبديل ڪيو ويو آھي، معلومات کي اپڊيٽ ڪيو ويو آھي ۽ پوء واپس InooDB ڏانھن تبديل ڪيو ويو آھي.
UPD2:

مون کي صرف هيٺ ڏنل مواد سان 1C-Bitrix کان هڪ خط مليو:

نظرثاني جي درخواست مڪمل ڪئي وئي
"mariadb کي 10.4.6 تي اپ گريڊ ڪرڻ کان پوءِ، هڪ غلطي ٿي وئي جڏهن هڪ infoblock عنصر کي محفوظ ڪيو ويو"
ماڊل: iblock، نسخو: نامعلوم
حل: رد ٿيل

تنهن ڪري 10.4 تائين اپڊيٽ ڪرڻ بظاهر ناممڪن آهي 🙁

جو ذريعو: www.habr.com

تبصرو شامل ڪريو