71590.jpg
當我們用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表中所有數據