gpt4 book ai didi

debian 9 + odbc + mariadb : [01000] Can't open lib , 文件未找到

转载 作者:行者123 更新时间:2023-12-04 19:29:04 25 4
gpt4 key购买 nike

我安装:

sudo apt-get install unixodbc unixodbc-dev

我从这里下载 mariadb-connector-odbc-3.0.2-ga-debian-x86_64.tar.gz https://downloads.mariadb.com/Connectors/odbc/connector-odbc-3.0.2/并将 libmaodbc.so 从存档复制到/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 => not found 然后
执行这样的事情:
ln -s libodbcinst.so.1 libodbcinst.so.2.0.0

但我的结果是不同的,我不明白我该怎么办?请帮忙!

最佳答案

这很烦人,我将其范围缩小到以下几点:

  • 如果您按照说明进行操作,Debian 将为您安装 libssl-dev,但是 libmaodbc.so 链接到 libssl.so.1.0.0 和 libcrypto.so.1.0.0 -- 因此它会遇到 ENOENT(没有此类文件或目录)试图找到这两个 .so 时,因此抛出“找不到文件”错误(对命令执行 strace 将为您提供找到 libmaodbc.so 文件的详细信息,但没有找到其他两个文件)
  • 即使您确实设法获得了 libssl1.0-dev,它也会删除 FreePBX/Asterisk 所需的其他软件包。
  • 即使那样,它仍然会在 libc.mo 上搜索语言环境 en_US
  • 失败

    解决这个问题的方法是找到另一个与 libssl1.1 正确链接的 libmaodbc.so

    关于debian 9 + odbc + mariadb : [01000] Can't open lib , 文件未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47179236/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com