我正在尝试将Rattle连接到MySQL数据库 . Rattle和MySQL都在我的笔记本电脑上(ubuntu 14.04) . 由于Rattle仅通过ODBC连接到MySQL,因此我按照post here来安装ODBC . 我做了以下
- 使用以下命令安装ODBC驱动程序
apt-get install libmyodbc unixodbc-bin
- 我的ODBC驱动程序位置如下
root @sridhar-Aspire-5745:/ home / sridhar#find / -name'libodbc.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
Driver = /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 =不
- 安装了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 .
1 回答
假设unixODBC的系统文件默认位置不是/ etc . 您可能想要定义和导出ODBCINI = / etc / odbc.ini和ODBCSYSINI = / etc