С сервера под Ubuntu не могу подключиться к базе mysql

1. Sergey_SP 25.07.24 14:13 Сейчас в теме
Есть сервер на Linux на нём база mysql к которой прекрасно обращался с сервера 1С через ODBC.

Но пришло время и сервер 1С переехал с Windows Server на Ubuntu (22.04 64 bit). Разрядность сервера 1С 64 bit.

На Ubuntu (где стоит сервер 1С) установил коннектор по инструкции https://askubuntu.com/questions/1165430/how-to-install-and-configure-the-latest-odbc-driivers-for-both-mysql-postgresq.
Установил unixodbc, коннектор и комьюнити плагин.

Но при попытке подключения с 1С ловлю ошибку:
Ошибка при вызове метода контекста (УстановитьСоединение)
по причине:
Ошибка ODBC. SQLSTATE: 01000
Номер ошибки: 0
Описание: [unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libmyodbc9w.so' : file not found

Но файл этот есть!

Подскажите, кто сталкивался, как лечили?
По теме из базы знаний
Найденные решения
4. starik-2005 3073 25.07.24 22:54 Сейчас в теме
(3)
у меня лично не получилось
И о чем это говорит? Что молодежь совсем разучилась мозгами шуршать?
На тебе заклинания:
sudo apt-get install odbc-mariadb --< установка драйвера на последней убунте
cat /etc/mysql/debian.cnf --< здесь пароль

ЗЫ: Вся фигня с установкой майскула заняла 20 минут. В упор не ведал, как называеццо современный ОДБЦ-драйвер, но делал все по моей статье.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sergey_SP 25.07.24 21:47 Сейчас в теме
(2) видел я эту статью, вы пробовали недавно на Ubuntu 22.04 по ней настраивать? у меня лично не получилось
4. starik-2005 3073 25.07.24 22:54 Сейчас в теме
(3)
у меня лично не получилось
И о чем это говорит? Что молодежь совсем разучилась мозгами шуршать?
На тебе заклинания:
sudo apt-get install odbc-mariadb --< установка драйвера на последней убунте
cat /etc/mysql/debian.cnf --< здесь пароль

ЗЫ: Вся фигня с установкой майскула заняла 20 минут. В упор не ведал, как называеццо современный ОДБЦ-драйвер, но делал все по моей статье.
Прикрепленные файлы:
5. Sergey_SP 26.07.24 14:09 Сейчас в теме
(4)
sudo apt-get install odbc-mariadb
спасибо, обязательно попробую. Просто мне тут надо подумать, а не начнет ли оно конфликтовать с тем что я уже сделал... а то придется еще выпиливать то что я ранее поставил...

Если не сложно, подскажите, какой путь должны пройти мозги чтобы получить из libmyodbc odbc-mariadb :)

Я линукс в основном по мануалам настраивал, поэтому вот тут к сожалению связи для меня нет ну никакой... ну кроме того что там и там присутствует "odbc":(
6. starik-2005 3073 26.07.24 14:29 Сейчас в теме
(5)
Если не сложно, подскажите, какой путь должны пройти мозги чтобы получить из libmyodbc odbc-mariadb

Ну, наверное, это просто понимание истории развития мировых ИТ и основных компонентов, на котором эта мировая ИТ стоит. Я считаю, что каждый приличный ИТ-шник должен бы знать вот это (ВИКИ):
MariaDB — ответвление от системы управления базами данных MySQL, разрабатываемое сообществом под лицензией GNU GPL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation[13].

Толчком к созданию стала необходимость обеспечения свободного статуса СУБД, в противовес политике лицензирования MySQL компанией Oracle[14]. Основателями проекта выступили первоначальные разработчики MySQL[15]. Система лицензирования MariaDB обязывает участников, желающих добавить свой код в основную ветку СУБД, обмениваться своими авторскими правами с MariaDB Foundation для охраны лицензии и возможности создавать критические исправления для MySQL[16].
И раз в дистрибутиве нет ничего про mysql с odbc, то, по всей видимости, нужно искать такое же, но не под ораклом. Ибо вряд ли убунту выпилила odbc для mysql, не включив туда что-то, его замещающее.

Ну а народ, который в ИТ случайно - ну он потом на стеке пишет о костылях.

ЗЫ: конфликтовать не станет, т.к., в отличие от венды, библиотеки в линух - это библиотеки в общем-то прямого интерфейса, а не драйвера для врапперов над ОЛЕДБ СОМ-объекта винды. И это тоже очевидно, если понимать базовое устройство венды и прочих ОС. Отсюда как бы отсылка к тому, что ИТ-шное образование - это хорошо, даже если это самообразование, как у меня.
7. Sergey_SP 29.07.24 12:02 Сейчас в теме
В общем после установки odbc-mariadb заработало, но не сразу...
На моей Ubuntu путь который вы указали, не было там таких файлов... в итоге я вернулся к старому файлу настроек (т.к. при попытке подключения, я видел что он продолжает обращаться к ранее установленному драйверу, точнее пытается), открыл файл настроек и увидел что там добавилась секция:
[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1

по итогу указал в качестве строки подключения уже MariaDB Unicode и заработало...
т.е. пока не совсем понимаю как оно взаимосвязано. Получается что к этому файлу (etc/odbcinst.ini) я обращался и ранее, предполагаю что через unixodbc... и получается что в целом система-то у меня работала, но вот почему-то через первый драйвер (который выдавал ошибку что он не найден, хотя был, я про mysql-connector-odbc_9.0.0-1ubuntu22.04_amd64.deb) не работало, а поставил другой заработало...
8. starik-2005 3073 29.07.24 14:06 Сейчас в теме
(7)
указал в качестве строки подключения уже MariaDB Unicode и заработало
Суть в том, что это все-равно сцылка на либу. Можно в драйвере указать это вот все [...], а можно просто сцыль на бинарник. Я указал бинарник, т.к. вломы было перезагружать комп.

С другой стороны, ну раз зарабтало - уже хорошо. Было бы неплохо указать, что такой-то ответ - это ответ на вопрос, чтобы гуглящие могли найти инфу быстро и качественно.

По поводу пути, который я указал - это путь к файлу настроек mysql. Если у вас mysql установлен на другом компе, то на текущем компе такого пути и не будет. Или вы о чем?
9. Sergey_SP 29.07.24 15:34 Сейчас в теме
(8) Не правильно выразился, я про эту строку
cat /etc/mysql/debian.cnf --< здесь пароль
т.е. у меня такого файла не появилось.

Я к тому, что у меня не сложилось четкого понимания скажем так на уровне объектов кто обращается к файлу /etc/odbcinst.ini, т.е. изначально были секции:
[MySQL]
Description=MySQL ODBC Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc9w.so
Usagecount=1

[MySQL ODBC 9.0 Unicode Driver]
DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc9w.so
UsageCount=1

[MySQL ODBC 9.0 ANSI Driver]
DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc9a.so
UsageCount=1

и я на стороне 1С прописывал [MySQL] и получал что файла /usr/lib/x86_64-linux-gnu/odbc/libmyodbc9w.so нет, хотя физически он был.

Потом после установки odbc-mariadb, появилась секция:
[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1

Но при обращении по прежней строке [MySQL], ошибка была прежняя, т.е. цепочка вызова не изменилась, после установки odbc-mariadb.

И я предполагаю что этот файл читает некая общая библиотека, как я предположил к примеру unixodbc, и далее делаю выводы, либо первичный драйвер вообще не подходил для моей задачи, либо он как-то криво у меня встал, после установки рекомендованного вами драйвера и уже обращения к нему всё заработало...
10. Sergey_SP 29.07.24 15:37 Сейчас в теме
т.е. в принципе если указать не секцию, а напрямую файл драйвера, как сделали вы, то возможно и unixodbc не нужна и всё проще получается.

но у меня уже был рабочий код который раньше под windows работал, я поэтому по тому пути и шел.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот