[IM002] [unixODBC] [驱动程序管理器]未找到数据源名称,并且在通过isql连接时没有默认驱动程序指定的消息

时间:2015-12-19 09:56:58

标签: mysql odbc unixodbc

我正在尝试将Rattle连接到MySQL数据库。 Rattle和MySQL都在我的笔记本电脑上(ubuntu 14.04)。由于Rattle仅通过ODBC连接到MySQL,因此我在帖子here之后安装了ODBC。我做了以下

  1. 使用以下命令安装ODBC驱动程序

    apt-get install libmyodbc unixodbc-bin

  2. 我的ODBC驱动程序位置如下

    root @sridhar-Aspire-5745:/ home / sridhar #find / -name'lib odbc .so' /usr/lib/i386-linux-gnu/odbc/liboplodbcS.so /usr/lib/i386-linux-gnu/odbc/libodbcdrvcfg2S.so /usr/lib/i386-linux-gnu/odbc/libodbctxtS.so /usr/lib/i386-linux-gnu/odbc/libodbcdrvcfg1S.so /usr/lib/i386-linux-gnu/odbc/libodbcpsqlS.so /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so /usr/lib/i386-linux-gnu/odbc/libodbcminiS.so /usr/lib/i386-linux-gnu/odbc/libodbcnnS.so /usr/lib/i386-linux-gnu/odbc/libmyodbc.so /usr/lib/i386-linux-gnu/odbc/liboraodbcS.so

  3. 使用以下内容创建ODBC安装文件(/etc/odbcinst.ini

    [myodbc_mysql]
    描述= MySQL的ODBC
    司机= /usr/lib/i386-linux-gnu/odbc/libmyodbc.so
    Setup = /usr/lib/i386-linux-gnu/odbc/libodbcmyS.so
    UsageCount = 6

  4. 确定MySQL套接字路径

    root @sridhar-Aspire-5745:/ home / sridhar#mysqladmin -u root -p version
    输入密码:
    mysqladmin Ver 8.42 Distrib 5.5.46,对于i686上的debian-linux-gnu
    版权所有(c)2000,2015,Oracle和/或其附属公司。版权所有。

    Oracle是Oracle Corporation和/或其注册商标 分支机构。其他名称可能是其各自的商标 所有者。

    服务器版本5.5.46-0ubuntu0.14.04.2
    协议版本10
    通过UNIX套接字连接Localhost
    UNIX套接字/var/run/mysqld/mysqld.sock
    正常运行时间:4小时41分49秒
     
    主题:1个问题:229个慢查询:1个打开:1156个刷新表:1个打开表:每秒400个查询平均值:0.013

  5. 使用以下内容创建/etc/odbc.ini

    [myodbc_mysql_rattle]
    描述=拨浪鼓
    Driver = myodbc_mysql#自定义驱动程序名称
    Server = localhost#或外部IP(如果需要)
    如果需要,端口= 3306#或自定义端口
    Socket = /var/run/mysqld/mysqld.sock#socket,见上文
    Database = #MySQL数据库名称或空白 选项= 3
    ReadOnly = No

  6. 安装了ODBC驱动程序

    root @sridhar-Aspire-5745:/ home / sridhar#odbcinst -i -d -f /etc/odbcinst.ini
    odbcinst:已安装驱动程序。使用次数增加到7     目标目录是/ etc

  7. 安装了系统DSN

    root @sridhar-Aspire-5745:/ home / sridhar#odbcinst -i -s -l -f /etc/odbc.ini

  8. 检查系统DSN是否已成功安装

    root @sridhar-Aspire-5745:/ home / sridhar#odbcinst -s -q [myodbc_mysql_rattle]

  9. 如果我可以连接到MySQL数据库进行测试(****表示密码!)

    isql -v myodbc_mysql_rattle root ****

  10. 仅获得

    [IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified <br>
    [ISQL]ERROR: Could not SQLConnect
    

    我重复了7次!我仍然无法理解为什么isql找不到DSN。

1 个答案:

答案 0 :(得分:1)

假设unixODBC的系统文件默认位置不是/ etc。 您可能想要定义&amp; export ODBCINI = / etc / odbc.ini和ODBCSYSINI = / etc