R语言使用RMySQL连接及读写Mysql数据库 测试通过
R语言使用RMySQL连接及读写Mysql数据库
简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式。
系统环境说明
Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64
系统编码:LANG=zh_CN.UTF-8(中文UTF-8格式)
MySQL版本:mysql Ver 14.14 Distrib 5.1.73, forredhat-linux-gnu (x86_64) using readline 5.1

安装mysql
1. 查看是否安装
yum list installed mysql*
2. 查看现有安装包
yumlist mysql*
3. 安装mysql服务器端
yuminstall mysql-devel
yuminstall mysql-server
4. 设置mysql默认字符和引擎
vim/etc/my.cnf
在[mysqld]下添加
default-character-set=utf8
default-storage-engine=INNODB
5. mysql启动和关闭
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
6. 设置开机mysql启动
/sbin/chkconfig - - list
/sbin/chkconfig add mysqld
/sbin/chkconfig mysqld on
参考:redhat下mysql安装与使用
安装RMySQL
install.packages(“RMySQL”)
使用RMySQL操作数据库
- library(RMySQL)
 - help(package=”RMySQL”) #查看RMySQL的说明文档,里面有RMySQL所有可用的方法
 - #创建数据库连接
 - con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password")
 - #获取连接信息,查看database下所有表,以及删除testname表
 - summary(con)
 - dbGetInfo(con)
 - dbListTables(con)
 - dbRemoveTable(con,"test")
 

- #写数据库表
 - fruits <-data.frame(id=1:5,name=c("苹果","香蕉","梨子","玉米","西瓜"),price=c(8.8,4.98,7.8,6,2.1),status=c("无","打折","无","售罄","批发"))
 - dbListTables(con)
 - dbWriteTable(con,"fruits",fruits)
 - dbListTables(con)
 

- #读数据库
 - dbReadTable(con,"fruits")#中文出现乱码,这是因为字符编码格式不统一的问题
 - dbSendQuery(con,'SET NAMES utf8') #修正,原为:dbSendQuery(con,'SET NAMES uft8')
 
dbReadTable(con,"fruits")#没有乱码问题了


dbSendQuery(con,'SET NAMES uft8')这个设置一老会提示错误,可能会需要多试几次才行,不知道为什么。
注意:应为:dbSendQuery(con,'SET NAMES utf8')

- #写数据表,覆盖追加
 - testA <-data.frame(id=1:6,e=c("a","b","c","d","e","f"),c=c("我","的","世","界","变","得"))
 - testB <-data.frame(id=7:13,e=c("g","h","i","j","k","l","m"),c=c("奇","妙","跟","难","以","言","喻"))
 - #直接写testA写入test表中
 - dbWriteTable(con,"test",testA,row.names=F)
 - dbReadTable(con,"test")
 - #追加写testB追加在test表后
 - dbWriteTable(con,"test",testB,append=T,row.names=F)
 - dbReadTable(con,"test")
 - #覆盖写testB覆盖test表
 - dbWriteTable(con,"test",testB,overwrite=T,row.names=F)
 - dbReadTable(con,"test")
 

- #用SQL语句查询dbGetQuery()和dbSendQuery()两种方法
 - dbGetQuery(con, "SELECT * FROM fruits limit 3")
 - res <- dbSendQuery(con, "SELECT *FROM fruits")
 - data <- dbFetch(res, n=2) #取前2条数据,n=-1时是获取所有数据
 - data
 - data <- dbFetch(res, n=-1) #取余下所有数据
 - data
 - dbClearResult(res)
 - dbDisconnect(con) #断开连接
 

- #用SQL语句批量查询
 - con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password",client.flag= CLIENT_MULTI_STATEMENTS) #client.flag设置这样支持批量查询
 - dbSendQuery(con,'SET NAMES uft-8')
 - sql <- "SELECT * FROM fruits;SELECT * FROM test"
 - res1 <- dbSendQuery(con,sql)
 - dbFetch(res1, n = -1)
 - if (dbMoreResults(con)) {
 - res2 <- dbNextResult(con)
 - dbFetch(res2, n = -1)
 - }
 - dbListResults(con)
 - dbClearResult(res1)
 - dbClearResult(res2)
 - dbDisconnect(con)
 

参考:RMySQL数据库编程指南
R语言使用RMySQL连接及读写Mysql数据库 测试通过的更多相关文章
- R语言使用RMySQL连接及读写Mysql数据库
		
简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64 系统编码:LANG=zh_ ...
 - shell中读写mysql数据库
		
本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...
 - JAVA连接SqlServer2008R2和MySql数据库
		
问题描述: 下面是有关连接SqlServer2008R2和MySql数据库的封装类 package com.test; import java.sql.Connection; import java. ...
 - linux下程序JDBC连接不到mysql数据库
		
今天在linux下部署一个 JavaEE项目的时候总是连接不到Mysql数据库,检查之后发现连接池的配置确定是对的,进入linux服务器之后以mysql -uname -ppassword连接总是报A ...
 - 寝室远程连接室友mysql数据库
		
注意,本方法是适用于同一局域网下的远程连接 注意,本方法是适用于同一局域网下的远程连接 注意,本方法是适用于同一局域网下的远程连接 首先需要修改mysql数据库的相关配置,将user表中的host改为 ...
 - robot_framewok自动化测试--(9)连接并操作 MySql 数据库
		
连接并操作 MySql 数据库 1.mysql数据库 1.1安装mysql数据库 请参考我的另一篇文章:MYSQL5.7下载安装图文教程 1.2.准备测试数据 请参考我的另一篇文章:Mysql基础教程 ...
 - 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
		
说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...
 - C#连接、访问MySQL数据库
		
一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...
 - SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点
		
mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...
 
随机推荐
- 关于 NSInvocation
			
Invocation 调用的意思. 可想而知NSInvocation 是一个 方法调用 封装的类. 这体现了 面向对象的思想, 及一切皆对象.函数也不例外. 一般编程中,应该很少用到这个. 但是 ...
 - 将视频转换为 HLS(HTTP Live Streaming) 协议格式文件
			
就是将视频文件转码(H264+ACC).分片(n个.ts文件).生成列表(.m3u8) 方便网站提供视频播放服务,提升加载速度,节省流量. 1.准备好源视频文件. 2.下载 ffmpeg(http:/ ...
 - [转]在 javascript 按键事件中,按键值的对照表
			
转自:http://www.phpweblog.net/kiyone/archive/2007/04/19/1138.html 话说谁知道怎么能精简下word生成的html代码....好大啊... 字 ...
 - Windows平台JDK安装
			
原文链接:http://android.eoe.cn/topic/android_sdk 下载Java的开发包JDK JDK有好几个类型版本,我们只需要选择Java SE类型的版本就行了.进入网页:h ...
 - 近观ArcGIS 10.3.1
			
ArcGIS 10.3.1公布了是有很多增强和改变.接下来我们重点内容一睹为快. 一.三维内容制作.公布及分享 ArcGIS 10.3.1能够实现三维内容制作.公布及分享.公布流程: 须要的软件环境 ...
 - Universal USB Installer集开源软件之佳作
			
有机会下载一份uui的源代码,翻看了一下,呵呵,有意思,几乎是一个开源软件的大杂烩,忽然,恍然大悟,原来,作者才是开源软件精神的代言人,不重复制造轮子的践行者啊. uui网址:https://www. ...
 - C#实现RSA加密与解密、签名与认证
			
一.RSA简介 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响力 ...
 - 机器学习 之 SVM VC维度、样本数目与经验风险最小化的关系
			
VC维在有限的训练样本情况下,当样本数 n 固定时.此时学习机器的 VC 维越高学习机器的复杂性越高. VC 维反映了函数集的学习能力,VC 维越大则学习机器越复杂(容量越大). 所谓的结构风险最小化 ...
 - HTML5学习笔记(二):HTML基础学习之一
			
元素.属性和格式化 元素是指开始标签到结束标签之前的所有代码,如: <p>this is my page!</p> <!-- 下面的可以称为空元素 --> < ...
 - docker容器资源配额控制
			
转自:http://blog.csdn.net/horsefoot/article/details/51731543 文/ 天云软件 容器技术团队 Docker通过cgroup来控制容器使用的资源配额 ...