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
安装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 uftf8')
- dbReadTable(con,"fruits")#没有乱码问题了
- #写数据表,覆盖追加
- 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 utf8')
- 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)
有任何问题或建议欢迎提出!
转载请务必注明来源,谢谢!
R语言使用RMySQL连接及读写Mysql数据库的更多相关文章
- R语言使用RMySQL连接及读写Mysql数据库 测试通过
R语言使用RMySQL连接及读写Mysql数据库 简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2 ...
- 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 ...
随机推荐
- luoguP3302 [SDOI2013]森林 主席树 启发式合并
题目链接 luoguP3302 [SDOI2013]森林 题解 本来这题树上主席树暴力启发式合并就完了 结果把lca写错了... 以后再也不这么写了 复杂度\(O(nlog^2n)\) "f ...
- Codeforces.914D.Bash and a Tough Math Puzzle(线段树)
题目链接 \(Description\) 给定一个序列,两种操作:一是修改一个点的值:二是给一个区间\([l,r]\),问能否只修改一个数使得区间gcd为\(x\). \(Solution\) 想到能 ...
- Python解释数学系列——分位数Quantile
跳转到我的博客 1. 分位数计算案例与Python代码 案例1 Ex1: Given a data = [6, 47, 49, 15, 42, 41, 7, 39, 43, 40, 36],求Q1, ...
- tableview 选中一行后,不显示选中颜色
tableview 选中一行后,不显示选中颜色 千万不要将tableview的allowsSelection设置成NO,那样的话可能导致tableview不能响应点击动作. 应该使用:cell.sel ...
- UEditor实现前后端分离时单图上传
首先,需要下载部署ueditor相关代码,可以参考一篇简单的博客,这里不再赘述: 环境搭建好后,我们先简单使用一下,启动http://web.yucong.com:8080/ueditor/index ...
- 如何正确地使用android中的progressdialog
网上有很多关于progressdialog的用法的介绍,下面这个是最具代表性的: http://sd8089730.iteye.com/blog/1441610 其核心代码: Handler hand ...
- pkg-config命令的Makefile.am
举例:通过Makefile调用pkg-config命令. pkg-config - Return metainformation about installed libraries (为了使用lib库 ...
- CUDA_ERROR_OUT_OF_MEMORY
E tensorflow/stream_executor/cuda/cuda_driver.cc:1002] failed to allocate 198.83M (208486400 bytes) ...
- Openstack配置文件管理的变迁之路
在管理一个Openstack集群时,如何维护配置文件无疑是其中最艰难和繁琐的任务之一.因为你不仅要面对众多的核心服务(nova,keystone,glance,cinder,etc)的配置文件,还需要 ...
- Global Mapper如何加载在线地图
Global Mapper是一个比较好用的GIS数据处理软件,官网:http://www.bluemarblegeo.com/products/global-mapper.php ,除使用ArcGIS ...