myodbc: выбор рабочей версии.
Установил dev-db/unixODBC-2.3.2 (minimal unicode).
К нему mysql и драйвер: dev-db/myodbc
Сначала пытался поставить драйвер из основного дерева, тот, что dev-db/myodbc-5.1.6 и ожидаемо обломался. Нашёл замену в виде ebuild из оверлея mysql. Тот встал нормально, но работать в принципе не хочет. Если верить интернетам, то проблем быть не должно, а они есть. Выглядит так:
# isql ejabberd -v
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib64/libmyodbc5w.so' : file not found
[ISQL]ERROR: Could not SQLConnect
Далее проверки, что всё ок:
file /usr/bin/isql
/usr/bin/isql: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, stripped
# file /usr/lib64/libmyodbc5w.so
/usr/lib64/libmyodbc5w.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
Посмотрел через ldd, в т.ч. и с -v, там тоже ничего подозрительного не увидел.
# ldd /usr/lib64/libmyodbc5w.so
linux-vdso.so.1 (0x00006b86ca863000)
libmysqlclient.so.18 => /usr/lib64/mysql/libmysqlclient.so.18 (0x00006b86ca0f5000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00006b86c9ed8000)
libdl.so.2 => /lib64/libdl.so.2 (0x00006b86c9cd3000)
libodbcinst.so.2 => /usr/lib64/libodbcinst.so.2 (0x00006b86c9abf000)
libc.so.6 => /lib64/libc.so.6 (0x00006b86c9717000)
libz.so.1 => /lib64/libz.so.1 (0x00006b86c94ff000)
libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00006b86c928d000)
libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00006b86c8e84000)
libm.so.6 => /lib64/libm.so.6 (0x00006b86c8b86000)
/lib64/ld-linux-x86-64.so.2 (0x00006b86ca864000)
libltdl.so.7 => /usr/lib64/libltdl.so.7 (0x00006b86c897b000)
Пробовал запускать так: # LD_LIBRARY_PATH=/usr/lib64/ isql ejabberd -v
результат не изменился.
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib64/libmyodbc5w.so' : file not found
[ISQL]ERROR: Could not SQLConnect
В выхлопе strace тоже ничего подозрительного не вижу: http://pastebin.com/DKYF0Ys6
Просьба к тем, кто пользуется unixODBC на 64-битной архитектуре кинуть рабочим ебилдом с рабочей версией или, если в приведённом выхлопе что-то увидели, то ткнуть в это самое что-то.
- Для комментирования войдите или зарегистрируйтесь
У меня из основного дерева
У меня из основного дерева вся эта связка работает. Надо смотреть настройки unixODBC.
/etc/unixODBC/odbc.ini:[ejab
/etc/unixODBC/odbc.ini:
[ejabberd]
Description = Mysql database
Driver = MySQL
Server = localhost
Database = ejabberd
UID = ejabberd
PWD = 123
charset = utf8
/etc/unixODBC/odbcinst.ini:
[MySQL]
Driver=/usr/lib64/libmyodbc5w.so
Description=Unicode Driver for connecting to MySQL database server
Threading=0
UsageCount=1
Строку с Driver менял по-всякому: и Driver=/usr/lib/libmyodbc5w.so пробовал, и Driver64=/usr/lib64/libmyodbc5w.so добавлял.
У меня работаает с
У меня работаает с libmyodbc5.so