odbc_connect(): SQL error: [unixODBC][Driver Manager]数据源名称未找


odbc_connect(): SQL error: [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]数据源名没有找到,也没有指定默认驱动程序,SQL状态IM002在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 );

我已经安装了ODBC驱动程序与FreeTDS连接Sybase数据库与PHP代码与以下命令

  • sudo apt-get install unixodbc
  • sudo apt-get install tdsodbc
  • sudo apt-get install freets -bin tdsodbc

/etc/odbc.ini 文件

  • Driver =/usr/lib/x86_64-linux-gnu/odbc/libtdsodb .so
  • Setup =/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
  • Server = server_name
  • Port = port_number
  • Database = dbname
  • Username = dbusername
  • Password = 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}';