我正在尝试将Rattle连接到MySQL数据库。 Rattle和MySQL都在我的笔记本电脑上(ubuntu 14.04)。由于Rattle仅通过ODBC连接到MySQL,因此我在帖子here之后安装了ODBC。我做了以下
使用以下命令安装ODBC驱动程序
apt-get install libmyodbc unixodbc-bin
我的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
使用以下内容创建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
确定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
使用以下内容创建/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
安装了ODBC驱动程序
root @sridhar-Aspire-5745:/ home / sridhar#odbcinst -i -d -f /etc/odbcinst.ini
odbcinst:已安装驱动程序。使用次数增加到7
目标目录是/ etc
安装了系统DSN
root @sridhar-Aspire-5745:/ home / sridhar#odbcinst -i -s -l -f /etc/odbc.ini
检查系统DSN是否已成功安装
root @sridhar-Aspire-5745:/ home / sridhar#odbcinst -s -q [myodbc_mysql_rattle]
如果我可以连接到MySQL数据库进行测试(****表示密码!)
isql -v myodbc_mysql_rattle root ****
仅获得
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified <br>
[ISQL]ERROR: Could not SQLConnect
我重复了7次!我仍然无法理解为什么isql找不到DSN。
答案 0 :(得分:1)
假设unixODBC的系统文件默认位置不是/ etc。 您可能想要定义&amp; export ODBCINI = / etc / odbc.ini和ODBCSYSINI = / etc