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操作数据库

  1. library(RMySQL)
  2. help(package=”RMySQL”) #查看RMySQL的说明文档,里面有RMySQL所有可用的方法
  3. #创建数据库连接
  4. con <- dbConnect(MySQL(),host="host",dbname="test_dw",user="user",password="password")
  5. #获取连接信息,查看database下所有表,以及删除testname表
  6. summary(con)
  7. dbGetInfo(con)
  8. dbListTables(con)
  9. dbRemoveTable(con,"test")

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

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

dbReadTable(con,"fruits")#没有乱码问题了


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

注意:应为:dbSendQuery(con,'SET NAMES utf8')


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

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

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


参考:RMySQL数据库编程指南

R语言使用RMySQL连接及读写Mysql数据库 测试通过的更多相关文章

  1. R语言使用RMySQL连接及读写Mysql数据库

    简单说下安装过程,一般不会有问题,重点是RMySQL的使用方式. 系统环境说明 Redhat系统:Linux 460-42.6.32-431.29.2.el6.x86_64 系统编码:LANG=zh_ ...

  2. shell中读写mysql数据库

    本文介绍了如何在shell中读写mysql数据库.主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为 ...

  3. JAVA连接SqlServer2008R2和MySql数据库

    问题描述: 下面是有关连接SqlServer2008R2和MySql数据库的封装类 package com.test; import java.sql.Connection; import java. ...

  4. linux下程序JDBC连接不到mysql数据库

    今天在linux下部署一个 JavaEE项目的时候总是连接不到Mysql数据库,检查之后发现连接池的配置确定是对的,进入linux服务器之后以mysql -uname -ppassword连接总是报A ...

  5. 寝室远程连接室友mysql数据库

    注意,本方法是适用于同一局域网下的远程连接 注意,本方法是适用于同一局域网下的远程连接 注意,本方法是适用于同一局域网下的远程连接 首先需要修改mysql数据库的相关配置,将user表中的host改为 ...

  6. robot_framewok自动化测试--(9)连接并操作 MySql 数据库

    连接并操作 MySql 数据库 1.mysql数据库 1.1安装mysql数据库 请参考我的另一篇文章:MYSQL5.7下载安装图文教程 1.2.准备测试数据 请参考我的另一篇文章:Mysql基础教程 ...

  7. 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库

    说起Oracle数据库,以前没用过Oracle不知道,但是这1年用Oracle后,发现真的是想狂吐槽,特别是那个.NET驱动和链接字符串,特别奇葩.总归是和其他数据库不一样,标新立异,不知道为何.另外 ...

  8. C#连接、访问MySQL数据库

    一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...

  9. SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点

    mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...

随机推荐

  1. 《Java Concurrency》读书笔记,构建线程安全应用程序

    1. 什么是线程安全性 调用一个函数(假设该函数是正确的)操作某对象常常会使该对象暂时陷入不可用的状态(通常称为不稳定状态),等到操作完全结束,该对象才会重新回到完全可用的状态.如果其他线程企图访问一 ...

  2. FullWebBrowserCookie 取得WebBrowser的完整Cookie

    using System; using System.ComponentModel; using System.Net; using System.Runtime.InteropServices; u ...

  3. 行为类模式(二):命令(Command)

    定义 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. UML 优点 能比较容易的设计一个命令队列 可以较容易的将命令加入日志 ...

  4. 按键精灵与逍遥安卓ADB连接重键方法

    1.按键精灵与逍遥安卓ADB连接安装按键精灵与逍遥安卓这两个软件我不用多说了.安装好后把逍遥安卓安装目录下的三个文件adb.exe,AdbWinApi.dll,AdbWinUsbApi.dll 全部复 ...

  5. 微网站|手机端html弹窗、弹层、提示框、加载条

    layer mobile是为移动设备(手机.平板等webkit内核浏览器/webview)量身定做的弹层支撑,采用Native JavaScript编写,完全独立于PC版的layer,您需要按照场景选 ...

  6. Vue.js使用-http请求

    Vue.js使用-ajax使用 1.为什么要使用ajax 前面的例子,使用的是本地模拟数据,通过ajax请求服务器数据. 2.使用jquery的ajax库示例 new Vue({ el: '#app' ...

  7. 每日英语:15 places to find inspiration

    If you’re a writer or artist, you understand the power of location when it comes to creativity and f ...

  8. Unity3d中默认函数调用顺序(MonoBehaviour)

    首先要明确的是MonoBehaviour是每个脚本的基类.每个Javascript脚本自动继承MonoBehaviour.使用C#或Boo时,需要显式继承MonoBehaviour.         ...

  9. 【delphi】delphi操作sqlite3

    SQLite SQLite是一个老牌的轻量级别的本地文件数据库,完全免费且开源,不需要安装,无须任何配置,当然,这样管理功能就不是很强大了,但是它的主要应用也是在本地数据库,可以说是最简单好用的嵌入式 ...

  10. Beginning SDL 2.0(2) TwinklebearDev SDL 2.0 Tutorial

    本文整理并简要介绍了TwinklebearDev SDL 2.0 Tutorial相关内容(以下简称TDSDLTutorial). 这是作为我学习并了解SDL2.0功能一篇学习总结. TDSDLTut ...