odbc_connect(): SQL 错误: [unixODBC][Driver Manager]Data source name not found, and no default driver

Posted

技术标签:

【中文标题】odbc_connect(): SQL 错误: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect【英文标题】:odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect 【发布时间】:2017-02-03 10:38:02 【问题描述】:

我遇到错误

odbc_connect():SQL 错误:[unixODBC][驱动管理器]数据源名称 未找到,也未指定默认驱动程序,SQL 状态 IM002 在 SQLConnect for Linux 服务器

在执行以下命令以从 php 连接 sybase 时。

$db = ADONewConnection('odbc');

$DSN = 'UID=username;PWD=password;EngineName=dbServiceName;AutoStop=No;Integrated=No;Debug=No;DisableMultiRowFetch=No;CommLinks=SharedMemory,TCPIP;Compress=No;Driver=Adaptive Server Anywhere 9.0';


$db->Connect($DSN );

我已使用 FreeTDS 安装了 ODBC 驱动程序,以使用以下命令将 Sybase 数据库与 PHP 代码连接起来

sudo apt-get install unixodbc sudo apt-get install tdsodbc sudo apt-get install freetds-bin tdsodbc

/etc/odbc.ini 文件

驱动程序 = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so 设置 = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so 服务器 = server_name 端口 = 端口号 数据库 = 数据库名 用户名 = dbusername 密码 = dbpassword

freetds.conf 文件

[sybase]
    host=
    port=
    Tds version=

【问题讨论】:

【参考方案1】:

如果您使用的是 FreeTDS,则需要从 odbcinst.ini 指定驱动程序,通常是 FreeTDS。试试:

$DSN = 'UID=username;PWD=password;EngineName=dbServiceName;AutoStop=No;Integrated=No;Debug=No;DisableMultiRowFetch=No;CommLinks=SharedMemory,TCPIP;Compress=No;Driver=FreeTDS';

【讨论】:

非常感谢您的建议。我尝试使用终端连接数据库服务器,它工作正常,但我在 php 连接中遇到同样的错误?我在终端“tsql -S SYBASE -U -P 中尝试过

以上是关于odbc_connect(): SQL 错误: [unixODBC][Driver Manager]Data source name not found, and no default driver 的主要内容,如果未能解决你的问题,请参考以下文章

使用 odbc_connect 从 SQLAlchemy 连接到 SQL 服务器

如何修复此错误:调用未定义的函数 odbc_connect() [重复]

ODBC错误连接到SQL数据库

连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息

php 64 位 SQL 状态 IM002 错误中的 MS Access DB

php连接Access数据库错误及解决方法