Но при попытке подключения с 1С ловлю ошибку:
Ошибка при вызове метода контекста (УстановитьСоединение)
по причине:
Ошибка ODBC. SQLSTATE: 01000
Номер ошибки: 0
Описание: [unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libmyodbc9w.so' : file not found
спасибо, обязательно попробую. Просто мне тут надо подумать, а не начнет ли оно конфликтовать с тем что я уже сделал... а то придется еще выпиливать то что я ранее поставил...
Если не сложно, подскажите, какой путь должны пройти мозги чтобы получить из libmyodbc odbc-mariadb :)
Я линукс в основном по мануалам настраивал, поэтому вот тут к сожалению связи для меня нет ну никакой... ну кроме того что там и там присутствует "odbc":(
Если не сложно, подскажите, какой путь должны пройти мозги чтобы получить из 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, не включив туда что-то, его замещающее.
Ну а народ, который в ИТ случайно - ну он потом на стеке пишет о костылях.
ЗЫ: конфликтовать не станет, т.к., в отличие от венды, библиотеки в линух - это библиотеки в общем-то прямого интерфейса, а не драйвера для врапперов над ОЛЕДБ СОМ-объекта винды. И это тоже очевидно, если понимать базовое устройство венды и прочих ОС. Отсюда как бы отсылка к тому, что ИТ-шное образование - это хорошо, даже если это самообразование, как у меня.
В общем после установки 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) не работало, а поставил другой заработало...
указал в качестве строки подключения уже MariaDB Unicode и заработало
Суть в том, что это все-равно сцылка на либу. Можно в драйвере указать это вот все [...], а можно просто сцыль на бинарник. Я указал бинарник, т.к. вломы было перезагружать комп.
С другой стороны, ну раз зарабтало - уже хорошо. Было бы неплохо указать, что такой-то ответ - это ответ на вопрос, чтобы гуглящие могли найти инфу быстро и качественно.
По поводу пути, который я указал - это путь к файлу настроек mysql. Если у вас mysql установлен на другом компе, то на текущем компе такого пути и не будет. Или вы о чем?
(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
и я на стороне 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, и далее делаю выводы, либо первичный драйвер вообще не подходил для моей задачи, либо он как-то криво у меня встал, после установки рекомендованного вами драйвера и уже обращения к нему всё заработало...