【问题标题】:odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnectodbc_connect(): SQL 错误: [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=

【问题讨论】:

    标签: php ubuntu odbc sybase freetds


    【解决方案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 中尝试过
    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多