linux odbc连接mysql_Linux Mint下ODBC连接mysql

本文介绍了在Linux Mint系统上如何通过源码安装unixODBC和MySQL ODBC驱动,包括下载、解压、编译、安装及配置数据源的详细步骤。在安装过程中,可能会遇到权限问题,需要使用root权限。同时,文章提到了安装成功后如何测试连接,并记录了一些未解决的问题,如不同驱动版本的区别、odbcinst.ini文件的作用等。
摘要由CSDN通过智能技术生成

R语言可通过ODBC驱动操作数据库。但是前提是操作系统中已经安装了ODBC驱动管理器和ODBC驱动。由于使用的Mint系统,unixODBC和MySQL odbc驱动均无法通过apt命令直接安装。所以下面介绍源码安装的过程和可能出现的问题,mysql的安装和配置略过。

安装ODBC驱动管理器unixODBC

1.下载unixODBC源码tar包

网址:http://www.unixodbc.org/

2.解压:$ tar -zxvf unixODBC-2.3.4.tar.gz

编译,安装:

$ cd unixODBC-2.3.4

$ ./configure

$ make

$ make install

如果make install报Permission denied错误, 使用root权限再执行一遍. 安装成功后在/usr/local/etc/目录下会有目录ODBCDataSources和两个配置文件odbc.ini和odbcinst.ini.

安装mysql ODBC驱动

1.下载mysql ODBC驱动二进制tar包

地址:https://dev.mysql.com/downloads/connector/odbc/。网站会根据系统自动匹配兼容的版本, 我的Mint匹配的是Linux-Generic。下载后可按照https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation-binary-unix-tarball.html上的安装教程安装。如果不想看了也可以继续看我的。

2.解压

$ tar -zxvf mysql-connector-odbc-5.3.7-linux-glibc2.5-x86-64bit.tar.gz

3.复制lib和bin中内容到/usr/local/bin 和 /usr/local/lib中

$ cd mysql-connector-odbc-5.3.7-linux-glibc2.5-x86-64bit

$ cp bin/* /usr/local/bin

$ cp lib/* /usr/local/lib

其中lib目录中包含libmyodbc5a.so和libmyodbc5w.so。其中5a结尾的是ANSI版本驱动,5w结尾的是unicode版本驱动。可以两个都复制也可以只复制一个。

4.向ODBC管理器注册ODBC驱动

$ myodbc-installer -a -d -n "MySQL ODBC 5.2 Driver" -t "Driver=/usr/local/lib/libmyodbc5w.so"

$ myodbc-installer -a -d -n "MySQL ODBC 5.2 Driver" -t "Driver=/usr/local/lib/libmyodbc5a.so"

分别注册unicode版本和ANSI版本驱动。不成功的话使用root权限再次尝试。成功后会有如下提示:

Success : Usage count is x

5.查看已注册的ODBC驱动

$ myodbc-installer -d -l

配置数据源

1.在odbc.ini文件中直接配置数据源

$ sudo vi /usr/local/etc/odbc.ini

我配置的数据源如下:

[ODBC Data Sources]

Mysql = MyODBC 3.5.7 Driver DSN

[Mysql]

Driver = /usr/local/lib/libmyodbc5w.so

Description = Connector/ODBC 5.3.7 Driver DSN

SERVER = 127.0.0.1

PORT = 3306

USER = root

Password = mysql

Database = algorithm

OPTION = 3

SOCKET =

[Default]

Driver = /usr/local/lib/libmyodbc5a.so

Description = Connector/ODBC 3.51 Driver DSN

SERVER = localhost

PORT = 3306

USER = root

Password = mysql

Database = algorithm

OPTION = 3

SOCKET = /var/run/mysqld/mysqld.sock

其中Mysql为通过tcp连接数据库,需确保配置的数据库用户有相应连接权限。Default为通过本地socket连接数据库,需指定socket文件位置。若SOCKET配置为空则默认为/tmp/mysql.sock。但是我的mysql的socket文件位置在/var/run/mysqld/mysqld.sock,因此需配置。登录mysql后使用status命令可查看socket文件位置。

2.设置环境变量

$ export ODBCINI=/usr/local/etc/odbc.ini

$ export ODBCSYSINI=/usr/local/etc

3.测试数据源

$ isql Mysql -v

$ isql Default -v

分别测试了Mysql数据源和Default数据源,若出现Connected!字样的信息则说明连接成功。

问题

虽然可以成功连接数据库了,但是仍有些问题没有很清楚。不过目的是让R能够通过ODBC访问数据库,其他问题先记录下来:

1.ANSI版本驱动和unicode版本驱动的详细意义没有搞清楚。

2.odbcinst.ini文件的作用是什么?

3.myodbc-installer命令各项参数的意义和odbc.ini文件中的某些配置项的意义没搞明白。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值