odbc_connect():SQL错误:[的unixODBC] [驱动程序管理器]数据源名称未找到,也没有指定默认驱动程序,SQL状态IM002 SQLCONNECT中

问题描述:

我收到错误odbc_connect():SQL错误:[的unixODBC] [驱动程序管理器]数据源名称未找到,也没有指定默认驱动程序,SQL状态IM002 SQLCONNECT中

odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect for Linux server

在执行下面的命令从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代码如下命令

  • 命令和apt-get安装了unixODBC
  • 命令和apt-get安装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
  • 服务器=服务器
  • 端口=端口号
  • 数据库= DBNAME
  • 用户名=数据库用户名
  • 密码= DBPASSWORD

freetds.conf文件

[sybase] 
    host= 
    port= 
    Tds version= 

如果您使用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}'; 
+0

非常感谢您的建议。我试图连接数据库服务器使用终端,它工作正常,但我在PHP连接中出现相同的错误?我试过在终端“tsql -S SYBASE -U -P ” – Ruta