R连接MySQL数据库方法

2024-09-08 04:38

本文主要是介绍R连接MySQL数据库方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 原文链接:http://r.dataguru.cn/article-3547-1.html               

学习RMySQL的网址:http://blog.fens.me/r-mysql-rmysql/             

 R连接MySQL数据库方法

R语言连接数据库可以利用数据库的存贮能力和R的计算能力,起到取长补短的效果。之前我们也说过了如何在R中使用SQL,很多教材上也提到了连接MySQL的方法,但是在安装上还需要注意一些细节问题。以下的解决方法也是在网上放狗加撞墙实验得出的结论

一、win平台

如果是在windows平台上安装,推荐采用ODBC连接方式。除了需要安装R和MySQL之外,还要安装RODBC扩展包,以及MySQL的ODBC驱动。下面是具体步骤:

1、R下载RODBC包,安装好。
2、在http://dev.mysql.com/downloads/connector/odbc
下载mySQL ODBC,安装好。
3、windows:控制面板->管理工具->数据源(ODBC)->双击->添加->选中mysql ODBC driver一项
填写:data source name 一项填入你要使用的名字,自己随便命名,例如:mysql_data;
description一项随意填写,例如mydata
TCP/IP Server 填写服务器IP,本地数据库一般为:127.0.0.1
user 填写你的mysql用户名
password 填写你的mysql密码
然后数据库里会出现你的mysql里的所有数据库,选择一个数据库。
确定。

4、打开R调用数据库:

<pre name="code" class="plain">library(RODBC)
channel <- odbcConnect("mysql_data", uid="abc", pwd="abc")
sqlTables(channel)  #查看数据中的表
data<-sqlFetch(channel,"abc")  # 查看表的内容,存到数据框里
 

二、linux平台
在linux平台下使用ODBC连接安装比较麻烦,推荐采用JDBC连接方式。具体安装方式如下:
在软件源中增加R官方源,方法具体见官网说明;之后在term中运行发下命令,安装需要的软件:
sudo apt-get update
sudo apt-get install r-base
sudo apt-get install r-dev
sudo apt-get install r-cran-rmysql
sudo apt-get install r-cran-dbi
sudo apt-get install mysql-server my-client
sudo apt-get install libmysqlclient-dev

在R中加载RMySQL两个包,并使用dbConnect函数设置好用户名和密码

<pre name="code" class="plain">library(RMySQL)
con <- dbConnect(MySQL(),user='abc', # 用户名password='abc', # 密码dbname='abc', # 要使用的数据库名称host="localhost") # 主机地址
dbListTables(con) # 列出所有数据库中的表
# 运行sql语句并返回数据到R
 

data <- dbGetQuery(con, "select * from abc")
SQL 查询可以通过dbSendQuery或dbGetQuery传给数据库管理系统。dbGetQuery传送查询语句,把结果以数据框形式返回。 dbSendQuery传送查询,返回的结果是继承"DBIResult"的一个子类的对象。"DBIResult"类可用于取得结果,而且还可以通过调 用dbClearResult清除结果。函数fetch用于获得查询结果的部分或全部行,并以列表返回。函数dbHasCompleted确定是否所有行 已经获得了,而dbGetRowCount返回结果中行的数目。如果只是简单的读整个表,也可以用dbReadTable函数。

在设置连接时会在R语言环境中明文标示了数据库用户和密码,为了安全起见,可以作如下设置:
在本机目录中定义一个配置文档( ~/.my/cnf),例如定义两个使用MySQL的用户组:
[local]
user = root
password = ultra_secret
host = localhost

[toto]
user = capitaine_flam
password = galaxy
host = milky.way.net

然后在R中使用用户组:

library(RMySQL)
con <- dbConnect(MySQL(), group='toto', dbname="user_profile")
m <- dbGetQuery(con, "SELECT DISTINCT user_id FROM demographics WHERE gender='0'")
dbDisconnect(con)
<pre class="r geshifilter-R" name="code" style="white-space: pre-wrap; word-wrap: break-word; font-size: 9pt; line-height: 26px; background-color: rgb(255, 255, 255); font-family: 微软雅黑, 宋体;"><div style="word-wrap: break-word; font-size: 9pt; font-family: 'WenQuanYi Micro Hei'; margin: 0px; padding: 0px; white-space: normal;">
</div>
另外R连接mysql会出现中文乱码变问号的情况,查到一个解决方案如下:
 
在mysql的配置文件/etc/mysql/my.cnf中[client]标签下加default-character-set=utf8

                                    

这篇关于R连接MySQL数据库方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147138

相关文章

Python中使用defaultdict和Counter的方法

《Python中使用defaultdict和Counter的方法》本文深入探讨了Python中的两个强大工具——defaultdict和Counter,并详细介绍了它们的工作原理、应用场景以及在实际编... 目录引言defaultdict的深入应用什么是defaultdictdefaultdict的工作原理

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

Python实现数据清洗的18种方法

《Python实现数据清洗的18种方法》本文主要介绍了Python实现数据清洗的18种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录1. 去除字符串两边空格2. 转换数据类型3. 大小写转换4. 移除列表中的重复元素5. 快速统

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d