当我们用R语言,经常需要与数据库相关联,将数据库中的数据导入R的table中,MySql是免费的开源数据库,下面的内容是如何在Ubuntu 中搭建R RODBC MySQL环境。
Note:下面所有操作都是基于ubuntu gnome 16.04版本
安装R环境
在sourcelist添加CRAN 镜像
CRAN源
R安装详细参考文档
sudo vim /etc/apt/sources.list
#添加以下源(其中favorite.cran.mirror应该被真实CRAN源替换)
deb https://favorite.cran.mirror/bin/linux/ubuntu xenial/
or
deb https://favortie.cran.mirror/bin/linux/ubuntu wily/
or
deb https://favorite.cran.mirror/bin/linux/ubuntu trusty/
or
deb https://favorite.cran.mirror/bin/linux/ubuntu precise/
sudo apt-get update
#当出现 no public key 时 通过以下命令 添加key,将后部分的key 替换为你需要添加的key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
#安装R 解释器
sudo apt-get install r-base
R环境安装好以后,在终端输入R 就可以打开R 解释器
MySQL 安装流程
sudo apt-get install mysql-server mysql-client
#在安装过程中会出现提示输入root用户密码
#使用如下命令登陆mysql
mysql -u root -p
#输入开始设置的root密码就会进入mysql
#下面是一些mysql的常用命令
#显示mysql设置参数
show variables;
#显示mysql设置参数中的端口号
show variables like 'port';
#重启mysql 服务
/ect/init.d/./mysql restart
#开启mysql 服务
/etc/init.d/./mysql start
#关闭mysql 服务
/etc/init.d/./mysql stop
ODBC 安装流程
首先在mysql的下载站下载ODBC包
ODBC下载链接
根据你的系统选择 32 或者64 版本 的 Tarball包下载
安装ODBC驱动
#切换到 tarball的下载位置
cd Tarball_path
#解压tar.gz包
gunzip mysql-connector-odbc-5.2.2-i686-pc-linux.tar.gz
cd unpackage_path
sudo cp /bin/* /usr/local/bin
sudo cp /lib/* /usr/local/lib
#下面是driver安装命令,直接输入myodbc-installer可以查看命令参数
#NOTE:在使用该命令安装驱动时,一定使用管理员权限
#Dirver=Path部分,Path是你刚才cp 到的位置
#安装ANSI driver
sudo myodbc-installer -a -d -n "MySQL ODBC 5.3 Driver" -t "Driver=/usr/local/lib/libmyodbc5a.so"
#安装 Unicode driver
sudo myodbc-installer -a -d -n "MySQL ODBC 5.3 Driver" -t "Driver=/usr/local/lib/libmyodbc5w.so"
#列出所有以安装 driver
sudo myodbc-installer -d -l
配置ODBC DSN
ODBC DSN参数列表
在/usr/local/etc中建立以下配置文件
odbc.ini
;
; odbc.ini configuration for Connector/ODBC and Connector/ODBC 5.3 drivers
;
[ODBC Data Sources]
myodbc5 = MyODBC 5.3 Driver DSN
[myodbc5]
Driver = /usr/local/lib/libmyodbc5a.so
Description = Connector/ODBC 5.3 Driver DSN
SERVER = localhost
PORT = 3306
USER = root
Password = *******
Database = test
OPTION = 3
SOCKET =
[Default]
Driver = /usr/local/lib/libmyodbc5a.so
Description = Connector/ODBC 5.3 Driver DSN
SERVER = localhost
PORT = 3306
USER = root
Password = ********
Database = test
OPTION = 3
SOCKET =
配置ODBC环境变量
#在.bashrc中添加以下代码
export ODBCINI=/usr/local/etc/odbc.ini
export ODBCSYSINI=/usr/local/etc
在R中安装RODBC包,并通过RODBC连接MySQL
#首先使用以下命令,安装unixodbc-dev
#否则在R中安装RODBC 会出现无法满足依赖的问题
sudo apt-get install unixodbc-dev
#进入R解释器环境
install.packages("RODBC")
测试ODBC是否正确安装
在测试前,重启mysql server
library(RODBC)
myconn = odbcConnect("myodbc5",uid="root",pwd="******")
data = sqlQuery(myconn,"select * from test")
#所有环境正确配置后,table中会包括sql test表中所有数据