Nganyari Bitrix lan MariaDB menyang versi stabil paling anyar

Sugeng siang, warga Khabrovsk sing dikasihi! Ayo kula ngenalake aku, Alexander. Administrator sistem siji studio WEB cilik nanging bangga. Kita pancene pengin kabeh bisa cepet, aman lan karo piranti lunak paling anyar. Kanggo nindakake iki, kita malah nginstal bundle nagios+PhantomJS ing komputer intra-kantor lan mriksa kacepetan loading kaca saben 30 menit. Miturut syarat layanan, kita uga ngawasi nganyari 1C-Bitrix lan nginstal kanthi rutin. Banjur sedina, sawise nganyari sabanjure, kita ndeleng pesen ing panel admin yen wiwit musim panas 2019, 1C-Bitrix mandheg nggarap MySQL 5.5 lan kita kudu nganyari. Wong lanang saka ISPSystem nggantheng lan ajeg nggedhekake fungsi panel, kang thanks khusus kanggo wong-wong mau. Nanging wektu iki ora bisa ngeklik kabeh nganggo mouse. Nanging sampeyan bisa ngerteni apa sing kedadeyan lan pirang-pirang rambut abu-abu saiki ana ing jenggotku.

Mung ana pilihan kanggo nginstal "server DBMS alternatif" sing diinstal ing wadhah Docker. Mesthi, aku ngerti yen Docker banget hemat karo sumber daya, nanging ora ketompo carane gedhe kerjane, overhead bakal tetep > 0. Lan ing kene kita katon gelut sajrone sepuluh detik lan ngoptimalake kabeh situs ing lawang sadurunge nerbitake lan menehi tandha persetujuan. Dadi dudu pilihanku.
Oke, apa tegese dokumentasi? Gawe serep kabeh, tambahake file menyang yum.repos.d kanthi link menyang repositori MariaDB, banjur

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

Yum banjur bakal sumpah manawa ana wong sing mbusak paket kasebut tanpa ngerti. Nanging pisanan, ayo dheweke sumpah, ora apa-apa. Lan kaloro, yen sampeyan mbusak liwat yum, banjur nyoba mbusak, bebarengan karo MariaDB, kabeh sing disambungake karo dependensi, lan iki kalebu PHP lan ISPManager lan PHPmyadmin. Mulane, kita bakal menehi hasil karo sumpah mengko.


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

UmumΓ©, kabeh wis diinstal lan diwiwiti. Sing apik yaiku database dijupuk lan ora perlu dipulihake saka dumps. Aku mriksa situs - padha bisa lan cepet. Aku lunga menyang saperangan saka wilayah admin kanggo mesthekake yen ora ana sing tiba lan nulis maneh menyang direktur yen kabeh iku OK. Kurang saka 30 menit jebule ora oke...

Nalika aku nyoba mlebu menyang area admin lan nambah lan ngowahi apa wae ing konten kasebut, pesen muncul

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

Amarga konten ing situs kasebut ditambahake dening karyawan kita dhewe, para klien durung ngerti apa-apa lan durung wiwit ngrusak kita. Nanging ana masalah wektu, amarga informasi ing situs kudu dianyari, lan akeh klien sing ngawasi dhewe.

Saka teks kesalahan, kita bisa nyimpulake yen Bitrix nyoba nambah entri anyar menyang database nalika nemtokake kunci utama sing padha ing artikel sing diowahi. Iki tegese ana alesan kanggo curiga yen masalah muncul ing sisih Bitrix. Kita menyang situs web lan hubungi dhukungan. Meh langsung entuk jawaban "masalah rumit. Diwenehake menyang insinyur senior - ngenteni ... "

Kita kudu ngenteni cukup suwe (dialog kabeh kedadeyan wiwit tanggal 25.06.2019 Juni 9.07.2019 nganti 10.4.6 Juli XNUMX) lan asile ana pesen "masalah iki ora ana gandhengane karo operasi Bitrix CMS, nanging ana gandhengane karo operasi database dhewe ing mariadb XNUMX lan, sayangΓ©, karo Ing sisih situs, ora ana cara kanggo ngatasi masalah iki; sampeyan kudu ngalih menyang versi lawas saka MariaDB.

Padha teka ... Aku panginten babagan downgrade ing awal crita, nanging iku ngandika ing ireng lan putihsupaya ora ana downgrade. Mbucal dumps lan re-deploy ing server rampung diinstal. Sing. Iku apik yen aku ora nganyari kabeh server bebarengan. Sing. "mung" satus situs (ngguyu gugup :-)). Dhukungan kasebut uga ujar: "Kanggo ngatasi masalah nalika nggunakake database MariaDB 10.4.6, sampeyan kudu ngubungi dhukungan teknis MariaDB yen transaksi kasebut ora bakal mbusak rekaman saka database yen panjalukan digawe:

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

Pangarep-arep glimmered kanggo sawetara jam saka wayahe aku miwiti komunikasi karo dhukungan MariaDB, nanging banjur aku nampa layang kang padha ngandhani aku banget bener sing aku dudu pangguna komersial lan mulane ora ana siji waΓ© bakal ngrampungake masalah, nanging ana forum ing situs web lan ana sampeyan bisa nyoba goleki opsi ... Aku ora bakal bosen sampeyan karo rincian. Ora ana pilihan ing kana.
Babagan! Kita tuku lisensi ISP!
- Halo, ndhukung? Wong lanang, tulung!
β€” Sorry, kita ora ndhukung scumbags sing ngganti versi native saka DBMS. Yen sampeyan pengin, ana pilihan karo server alternatif ing Docker.
β€” Nanging kepiye pangguna lan database bakal teka? Kanggo docker?
- Ya, sampeyan nyeret wong-wong mau nganggo tangan sampeyan ...
- Ya! Lan aja lali yen port kanggo mysql bakal diganti lan sampeyan kudu ngliwati kabeh konfigurasi lan nulis ulang.
- Oke, matur nuwun, aku bakal mikir babagan iki ...
Aku mikir babagan iki lan mutusake kanggo ngilangi 10.4 kanthi manual lan nginstal 10.2 sing ora ana masalah ing server liyane.

Proses kasebut ora beda karo proses nganyari. Aku mung kudu ngganti 10.4 kanggo 10.2 ing link menyang gudang, ngreset lan nggawe maneh cache kanggo yum. Inggih, siji liyane "bab cilik": sawise njabut 10.4, pindhah menyang /var/lib/mysql lan mbusak kabeh saka ing kono. Tanpa langkah iki sawise nginstal 10.2, layanan bakal terus kacilakan lan sampeyan bakal weruh

НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… '' Lost connection to MySQL server at 'reading initial communication packet', system error: 104 "Connection reset by peer"

Utawa

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

Sadurunge ngimpor database, aku nyetel tembung sandi root kanggo mysql sing wis ditemtokake ing konfigurasi ISP lan ngimpor dump database mysql. Dadi, amarga kita wis duwe pangguna lan hak, kita mung ngimpor kabeh database pangguna kanthi berturut-turut nggunakake akun root.

Teks skrip kanggo dump database:

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

Sadurunge ngimpor database, sampeyan kudu unzip. Supaya kita mung mbukak printah

gunzip /BACK/*.gz

Lan pungkasan: sakperangan alesan, hyphens diijini ing jeneng database (yen sampeyan nggawe liwat ISPmanager). Nanging nalika sampeyan nggawe utawa nyoba ngunggah dump menyang database sing duwe hyphen ing jenenge, sampeyan bakal nampa pesen yen sintaks panyuwunan ora bener.

Kabeh sing paling apik kanggo sing maca nganti pungkasan. Nyuwun pangapunten kanggo kemungkinan koma sing salah - iki masalah. Yen sampeyan duwe saran babagan inti saka apa sing diterangake, tulisake ing pesen pribadi amarga aku wedi yen aku bakal kantun ing komentar. Lan aja sumpah banget - iki artikel pisananku :)

UPD1:

Aku meh lali kanggo sebutno: nalika aku nyoba golek solusi kanggo masalah tanpa downgrade MariaDB, aku kudu piye wae nganyari informasi. Iki dianyari kaya mangkene: kabeh database diowahi saka InnoDB dadi MyISAM, info kasebut dianyari banjur diowahi maneh menyang InooDB.
UPD2:

Aku mung nampa layang saka 1C-Bitrix kanthi isi ing ngisor iki:

Panjaluk revisi rampung
"Sawise nganyarke mariadb menyang 10.4.6, ana kesalahan nalika nyimpen unsur infoblock"
Modul: iblock, versi: dingerteni
Solusi: ditolak

Dadi ketoke ora bisa nganyari nganti 10.4 saiki πŸ™

Source: www.habr.com

Add a comment