Linux Mint下ODBC连接mysql
R语言可通过ODBC驱动操作数据库。但是前提是操作系统中已经安装了ODBC驱动管理器和ODBC驱动。由于使用的Mint系统,unixODBC和MySQL odbc驱动均无法通过apt命令直接安装。所以下面介绍源码安装的过程和可能出现的问题,mysql的安装和配置略过。
安装ODBC驱动管理器unixODBC
1.下载unixODBC源码tar包
网址:
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文件中的某些配置项的意义没搞明白。
相关热词: Linux
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/sql/7585.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
因为之前遇到过不能保存
时间:2021-01-20
-
centos下输入呼吁不能有中
时间:2021-01-20
-
如下: #chkconfig --list 实际
时间:2021-01-20
-
qtbase、plugins、sqldrivers、
时间:2021-01-20
-
围绕着内存数据库的4个流
时间:2021-01-06
-
MySQL NoSQL–Memcached插件
时间:2021-01-06
-
MySQL安装启动时报错一则
时间:2020-12-29
-
mysql5.7.12 utf-8字符编码问题
时间:2020-12-29
热门文章
-
如何下载旧版本的MySQL
时间:2020-12-22
-
MySQL NoSQL–Memcached插件
时间:2021-01-06
-
MySQL安装启动时报错一则
时间:2020-12-29
-
完美解决servlet传数据到绿色版的mySQL的汉
时间:2020-12-28
-
Neo4j和图数据库起步
时间:2020-12-22
-
Linux Centos7下如何确认MySQL服务已经启动
时间:2020-12-22
-
解决数据库保存中文数据后变'???'
时间:2020-12-22
-
centos下输入命令不能有中文那么我怎么插
时间:2020-12-22
-
为初学者准备的MariaDB管理命令
时间:2020-12-22
-
解决"MySQL server PID file could not be found"问
时间:2020-12-22
