mysql - Asterisk 无法使用 odbc 连接器连接到数据库

标签 mysql odbc database-connection asterisk unixodbc

我是 Asterisk 的新手,这是我第一次尝试连接到数据库 (MySQL)。但我不断收到此错误 [unixODBC][驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序。这是我的设置:

/etc/odbcinst.int

[Default]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage       = 1
;UsageCount = 2

/etc/odbc.ini

[MYSQL-DNS]
Driver =MySQL
Description = MySQL connection to ‘My Voice’ database
Trace = Yes
TraceFile = /tmp/odbc.log
Server =localhost
Port =3306
Database =my_database
UserName =myuser
Password =mypass
Option = 3
Socket =/var/run/mysqld/mysqld.sock

/var/lib/asterisk/.profile

export ODBCINI=/etc/odbc.ini
export ODBCSYSINI=/etc

我还将 odbcinst.ini 和 odbc.ini 分别复制到 ~/.odbcinst.ini 和 ~/.odbc.ini 以及/var/lib/asterisk/以消除所有疑问。

res_odbc.conf

[ENV]

[my_database]
enabled => yes
dsn =>MYSQL-DNS
username => myuser
password => mypass
pre-connect => yes
sanitysql => select 1
;idlecheck => 3600
share_connections => yes
pooling => no
limit => 1
;isolation=repeatable_read

命令 odbcinst -j 输出

$ odbcinst -j 
unixODBC 2.3.2
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /etc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

我想我之前做了一个到/usr/lib 的符号链接(symbolic link),因此找到了 libmyodbc.so 输出

$ locate libmyodbc.so
/usr/lib/libmyodbc.so
/usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so

我还添加了 x 权限即(从 644 更改为 755):

ls -alsh /usr/lib/x86_64-linux-gnu/odbc/

对于 *.so 显示 755

日志输出

res_odbc.c: Connecting my_database
[Aug  1 09:32:40] WARNING[27846] res_odbc.c: res_odbc: Error SQLConnect=-1 errno=0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified
[Aug  1 09:32:40] WARNING[27846] res_odbc.c: Failed to connect to my_database
[Aug  1 09:32:40] ERROR[27846] res_config_odbc.c: No database handle available with the name of 'my_database' (check res_odbc.conf)

最佳答案

您可以检查连接为

isql -vvv MYSQL-DNS

这将清楚地告诉您哪里出了问题。

关于mysql - Asterisk 无法使用 odbc 连接器连接到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31760032/

相关文章:

C#:DB2 首先测试可用连接

c# - Odbc Paradox 驱动程序 WHERE 子句 日期

php - 本地主机中 PHP 中的相同脚本无法在线运行

c# - 如何在另一个连接中使用 Sql 连接?

当 LIKE 返回正确数量的结果时,Mysql MATCH 返回 0?

mysql - 如何在一定时间间隔后更新表

mysql - MySQL基于列的唯一值获取唯一行

mysql - 如何一次更新一列中的多行?

database - 是否可以从 Windows Mobile App 连接到服务器数据库

mysql - .Net 连接池 MySQL 临时表