我安装了:
sudo apt-get install unixodbc unixodbc-dev
我从这里https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.2/下载mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz并将libmaodbc.so从archive复制到/ usr / lib / x86_64-linux-gnu / ODBC /
接下来我配置odbcinst.ini:
[MariaDB]
Description=MariaDB
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
Setup=/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
FileUsage=1
和下一个odbc.ini:
[ast-con]
Description = MariaDB connection to 'asterisk' database
Driver = MariaODBC
Database = AsteriskDB
Server = localhost
UserName = zk
Password = rt131cvn
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
命令:
root@asterisk:/etc# odbcinst -q -d
[MariaODBC]
接下来我尝试用isql检查odbc:
root@asterisk:/etc# isql -v ast-con
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so # latest stable from https://downloads.mariadb.org/connector-odbc/+releases/' : file not found
[ISQL]ERROR: Could not SQLConnect
我尝试搜索谷歌,找到1个解决方案,但它没有帮助:
我设置了LD_LIBRARY_PATH
root@asterisk:/etc# env
LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/odbc
SSH_CONNECTION=xx.xxx.xxx.xxx 64759 xx.xxx.xxx.xx 22
OLDPWD=/root
XDG_SESSION_ID=26153
USER=root
PWD=/etc
HOME=/root
SSH_CLIENT=xx.xxx.xxx.xxx 64759 22
SSH_TTY=/dev/pts/0
MAIL=/var/mail/root
TERM=xterm
SHELL=/bin/bash
SHLVL=1
LOGNAME=root
XDG_RUNTIME_DIR=/run/user/0
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env
下一个命令:
root@asterisk:/etc# ldd /usr/lib/x86_64-linux-gnu/odbc/libmaodbc.so
linux-vdso.so.1 (0x00007fffad26f000)
libodbcinst.so.2 => /usr/lib/x86_64-linux-gnu/libodbcinst.so.2 (0x00007f5ad171d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5ad1419000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5ad107a000)
libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f5ad0e6e000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5ad0c51000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5ad1be9000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5ad0a4d000)
通常有libodbcinst.so.1 =>没找到然后 执行类似这样的事情: ln -s libodbcinst.so.1 libodbcinst.so.2.0.0
但我的结果不同,我无法理解我该怎么办?求救!
答案 0 :(得分:4)
这非常烦人,我把它缩小到几个方面:
如果您按照说明操作,Debian将为您安装libssl-dev,但是libmaodbc.so链接到libssl.so.1.0.0和libcrypto.so.1.0.0 - 因此会遇到尝试找到这两个.so时,ENOENT(没有这样的文件或目录),因此抛出"文件未找到"错误(在命令上执行操作将为您提供已找到libmaodbc.so文件的详细信息,但不会提供其他两个文件)
即使您设法获得libssl1.0-dev,它也会删除FreePBX / Asterisk所需的其他软件包。
即使这样,它仍会在libc.mo上搜索locales en_US
解决这个问题的方法是找到另一个与libssl1.1正确链接的libmaodbc.so
答案 1 :(得分:1)
我有同样的问题,请尝试使用较旧的驱动程序版本,例如/mariadb-connector-odbc-2.0.15-ga-debian-x86_64为我工作!
答案 2 :(得分:-1)
只需加载lib fron debian网站,然后手动进行!