Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: laskov в Dec 07, 2016, 23:06



Титла: MySQL/MariaDB client version
Публикувано от: laskov в Dec 07, 2016, 23:06
Програма, компилирана с MySQL клиент версия 5.5 при стартиране върху Fedora 25, казваше нещо от рода на "Липсва libmysqlclient.so.18 или libmysqlclient.so. Проверете инсталацията си". След инсталирането на mariadb-lib (mariadb-conf и mariadb-.... се инсталират също), започва да казва "Инсталирана е версия 10, а аз очаквам 5.5".
Понеже предполагам, че нещо, искащо по-ниска версия, ще работи нормално на нещо с по-висока, мога ли да конфигурирам някое от нещата така, че програмата да не се оплаква, или да се оплаква само когато версията на намерената библиотека е по-ниска? В /etc/my.cnf.d има два файла - my.cnf и client.cnf . Дали не мога да кажа на библиотеката да рапортува версия 5.5?
Или втори вариант, как да инсталирам на Fedora 25 libmysqlclient версия 5.5?
Писах по памет, утре мога да цитирам съобщения и имена на пакети дословно.


Титла: Re: MySQL/MariaDB client version
Публикувано от: spec1a в Dec 08, 2016, 09:09
   Налагало ми се е няколко пъти да правя фокуси между MySQL и MariaDB
,напр. дъмп на база от MySQL,после импорт в MariaDB и обратно, и не съм
имал проблеми, те са поне 95% съвместими,вкл. и на ниво библиотеки.
   Ако имаш проблем с някоя библиотека (посочил си libmysqlclient),можеш
напр. да свалиш съотв. .deb пакет от ubuntu или debian ,после ръчно да го разархивираш и да копираш библиотеката където трябва.
   Напр:
yum install binutils
ar vx package.deb
tar -xzvf .....tar.gz
   Разбира се,виж точните параметри на командите.
   Успех!


Титла: Re: MySQL/MariaDB client version
Публикувано от: go_fire в Dec 08, 2016, 09:24
Щях да напиша същото, но, за да съм сигурен изчаках да пише друг, че все пак аз съм ламер.

Клиента между мъсял и мария е 102% съвместим и никой потребител по никакъв начин не може да усети разликата. Аз щях да направя същото като Спеца. Да взема от стара Федора пакета и да го инсталирам. Ако има конфликти (с mc е най-бързо) ръчно да разхвърлям файловете. Правил съм го стотици пъти по разни поводи.

Разбира се възможен е трети вариант. Нещо като затвор, но не съвсем. Това го правя при разработка. Разпакетирам всички пакети в някаква точка напр. /хоме/гого/пкг/уср… след това в един прост shell file описвам пътищата (вкл. на библиотеките!) и всяка променлива на средата, която е необходима. Най-отдолу командата за стартиране на програмчето.

(За мен) е добра практика да се кръсти с името на програмчето и да се сложи на място в пътя на потребителя ми. Напр. /хоме/гого/сх. Така като повиквам програмата с тоя потребител, вместо тя, се изпълнява пълната последователност и накрая тя. Излишно е да казвам, че това сх трябва да е най-отпред в пътя ми.

Най-често в Интернет се дава такъв каталог да е $HOME/bin, но аз не съм съгласен, защото няма нищо двоично вътре. Затова за мен той е sh. Пък нека света си мисли, каквото си иска.

п.п. И последно. Ако това нещо е онова на Лазар за турникети ли, какво бяха, едни такива преградки на билетен център, то не може ли просто да смениш променливата на „равно или по-голямо“ (еквивалента в Паскал на ≧) и да го цомпилираш наново? Транслацията дълга ли е? Така ще се отървеш от хаковете, които ти предлагаме със Спеца.






Титла: Re: MySQL/MariaDB client version
Публикувано от: laskov в Dec 08, 2016, 13:29
Ей-й-й, Благодаря! Ще го мисля.  [_]3

Междувременно, понеже ми писна, прекомпилирах за 5.7 и инсталирах тази версия на библиотеката клиент, един вид - предадох се. Ще помисля и за статично компилиране на програмата.


Титла: Re: MySQL/MariaDB client version
Публикувано от: pennywise в Dec 09, 2016, 03:18
Какво се опитваш да нарпавиш, да замениш MySQL с MariaDB ли?


Титла: Re: MySQL/MariaDB client version
Публикувано от: laskov в Dec 09, 2016, 09:40
Какво се опитваш да нарпавиш, да замениш MySQL с MariaDB ли?
Да направя програмата си (компилиран изпълним файл) така, че да е независима от инсталираната на локалната машина версия на клиентската библиотека (libmysqlclient.so).


Титла: Re: MySQL/MariaDB client version
Публикувано от: spec1a в Dec 10, 2016, 10:35
   Ще трябва да компилираш приложението с опцията "static",  като
посочиш libmysqlclient.a
   Така тази функционалност ще бъде в твоя изпълним файл.
   Правил съм нещо подобно,само че отдавна.