Автор Тема: ODBC для MySQL  (Прочитано 2978 раз)

Оффлайн karp

  • Давно тут
  • **
  • Сообщений: 65
ODBC для MySQL
« : 22.09.2017 15:49:13 »
Здравствуйте!

P8.

Возникла задача запуска программы под wine, которая должна обратиться по ODBC к БД MySQL и произвести некоторые операции.

Что необходимо установить для ODBC? Под Windows для работы программы достаточно mysql-connector'а. На сайте MySQL, например, для Fedor'ы предлагаются пакеты mysql-connector-odbc... У нас в репозитории пакетов с подобным названием не вижу.
« Последнее редактирование: 22.09.2017 15:57:45 от karp »

Оффлайн ToraBora

  • alt linux team
  • ***
  • Сообщений: 125
    • Email
Re: ODBC для MySQL
« Ответ #1 : 22.09.2017 22:55:39 »
Здравствуйте!
Что необходимо установить не подскажу, одно ясно -- что пакета mysql-connector-odbc сейчас в репозитории нет. Он был вплоть до p6 включительно, а потом собираться перестал https://lists.altlinux.org/pipermail/sisyphus/2016-October/365555.html

Оффлайн karp

  • Давно тут
  • **
  • Сообщений: 65
Re: ODBC для MySQL
« Ответ #2 : 22.09.2017 23:13:43 »
Ой, какого размера засада-то!!! А я-то надеялся, что пакет просто иначе называется...

Буду очень признателен за предложения о том, с какой стороны подходить к решению проблемы: пытаться ставить "чужие" пакеты (чьи?), пересобирать (но по ссылке про devel пакет плохое написано). М.б. есть какие-то другие варианты?

Сразу оговорюсь, что на МариюДБ перейти в обозримом будущем не удастся -- в моём случае она не работает, odbc-connector для неё под XP создавать вообще не планируется и т.д. и т.п. В общем, тут проблем ещё больше...

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: ODBC для MySQL
« Ответ #3 : 23.09.2017 01:24:42 »
Вот тут не про это-же?
https://forum.altlinux.org/index.php?topic=33685.0
libmysqlclient-devel
Плюс libunixODBC-devel
Или им ещё какая-то связка нужна ?

Оффлайн karp

  • Давно тут
  • **
  • Сообщений: 65
Re: ODBC для MySQL
« Ответ #4 : 23.09.2017 08:06:20 »
С помощью бинарника для Generic Linux с сайта MySQL проблема вроде решилась. Насколько я понимаю, всего дел -- это куда-то положить драйвера и правильно заполнить odbcinst.ini и odbc.ini.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: ODBC для MySQL
« Ответ #5 : 23.09.2017 08:22:50 »
С помощью бинарника для Generic Linux с сайта MySQL проблема вроде решилась. Насколько я понимаю, всего дел -- это куда-то положить драйвера и правильно заполнить odbcinst.ini и odbc.ini.
А покажи , что там за пакет. Есди код открытый, можно на досуге попытаться собрать. Но сразу говорю - базы для меня - очень далёкая вещь ;-)

Оффлайн karp

  • Давно тут
  • **
  • Сообщений: 65
Re: ODBC для MySQL
« Ответ #6 : 23.09.2017 08:36:10 »
https://dev.mysql.com/downloads/connector/odbc/

Там лежат:

https://cdn.mysql.com//Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-glibc2.12-x86-32bit.tar.gz
https://cdn.mysql.com//Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-glibc2.12-x86-64bit.tar.gz

Штатный инсталятор у меня отработал на установке драйвера, но выдал ошибку при добавлении DataSource. Почитав https://www.dataarmor.ru/how-to-install-mysql-odbc-ubuntu-16-04, я понял, что инталятор просто корректно заполняет ini-файлы в /etc. А это я и сам могу по примерам, приведённым в ссылке.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: ODBC для MySQL
« Ответ #7 : 23.09.2017 08:40:52 »
Т.е. напрягаться не надо и ты всё сам решишь? ;-)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 246
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: ODBC для MySQL
« Ответ #8 : 23.09.2017 08:42:37 »
Тогда напиши решение, что-бы тот, кто пойдёт за тобой, "нашёл в трудный момент кусочек хлеба" ;-)

Оффлайн karp

  • Давно тут
  • **
  • Сообщений: 65
Re: ODBC для MySQL
« Ответ #9 : 23.09.2017 09:15:30 »
Собственно решение уже было, но могу сформулировать чётче:

1. С сайта MySQL (https://dev.mysql.com/downloads/connector/odbc/) выбираем коннектор под свою архитектуру, например:
https://cdn.mysql.com//Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.9-linux-glibc2.12-x86-32bit.tar.gz

2. Распаковываем и копируем оттуда драйверы в "правильное" место, например, так:
cp mysql-connector-odbc-5.3.9-linux-glibc2.12-x86-32bit/lib/* /usr/lib/odbc/
Там 2 файла libmyodbc5a.so и libmyodbc5w.so -- чем они отличаются я пока не выяснял.

3. Далее устанавливаем драйвер:
bin/myodbc-installer -d -r -n "MySQL" -t "DRIVER=/usr/lib/odbc/libmyodbc5a.so"
Подозреваю, что эта команда просто добавляет в файл /etc/odbcinst.ini следующее:
[MySQL]
Driver=/usr/lib/odbc/libmyodbc5a.so
UsageCount=1

4. Далее надо бы добавить DataSource командой:
/bin/myodbc-installer -s -a  -n Source_Name  -t «DRIVER=MySQL;SERVER=127.0.0.1;DATABASE=DB_Name;UID=user;PWD=pwd», но эта команда у меня вылетает с ошибкой:
[ERROR] Driver must be specified for a data source
-bash: UID: доступная только на чтение переменная
Драйвер в команде вроде указан явно, соответствует предыдущей команде...
Беглый поиск ответа на причину ошибки не дал, но дал наводку на правильное заполнение файла /etc/odbc.ini, например:
[Source_Name]
Driver=MySQL
SERVER=127.0.0.1
UID=wsg
PWD=wsg
DATABASE=DB_Name
PORT=3306

А далее всё уже заработало и без инсталятора.

Более подробно, а также механизм проверки работоспособности описан здесь: https://www.dataarmor.ru/how-to-install-mysql-odbc-ubuntu-16-04.

« Последнее редактирование: 23.09.2017 09:20:29 от karp »

Оффлайн Nicom

  • Завсегдатай
  • *
  • Сообщений: 621
Re: ODBC для MySQL
« Ответ #10 : 22.07.2019 18:01:09 »
libmyodbc5a.so (libmyodbc8a.so) - это ANSI драйвер.
libmyodbc5w.so (libmyodbc8w.so) - это UNICODE драйвер.
libmyodbc5S.so (libmyodbc8S.so) - это установщик драйвера в unixodbc.