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 密码 = dbpasswordfreetds.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以上是关于odbc_connect(): SQL 错误: [unixODBC][Driver Manager]Data source name not found, and no default driver 的主要内容,如果未能解决你的问题,请参考以下文章
使用 odbc_connect 从 SQLAlchemy 连接到 SQL 服务器
如何修复此错误:调用未定义的函数 odbc_connect() [重复]
连接 SAP Hana 数据库时调用未定义函数 odbc_connect() 消息