首页 > 数据库 >R语言-连接MySQL数据库方法

R语言-连接MySQL数据库方法

时间:2023-04-11 12:14:33浏览次数:67  
标签:数据源 数据库 ODBC DSN 64 MySQL 连接

#2 R语言-连接MySQL数据库方法#####

2.1 方法1:使用R数据库接口连接数据库####
#使用RMySQL包

install.packages('RMySQL')
library(RMySQL)
#有两种方式操作
#2.1.1 使用dbConnect####
conn <- dbConnect(MySQL(),
dbname = "smartbi_data",
                 username="etl",
                 password="etl20160530",
                  host="localhost", port=9090) #使用跳板机打了隧道host及端口均要修改
daily_record<-dbReadTable(conn, "daily_record")
View(daily_record)
str(daily_record)

#数据操作方法:
dbWriteTable(conn, "tablename", data) #写表
dbReadTable(conn, "tablename") #读表
dbDisconnect(conn) #关闭连接

#2.1.2 使用sqldf包####
library(sqldf)
sqldf("select * from daily_record",dbname="smartbi_data",drv="MySQL",user="etl",password="etl20160530",host="10.66.1.75",port=8096)
但是失败了?没连接上?为啥报错?

#2.2 方法2:使用ODBC连接连接数据库####
#a下载mysql-connector-odbc时电脑是64位的要下载64位的。通常 64 位的系统,可以运行 64/ 32 位应用程序。但是 32 位的系统,并不总是能正常运行 64 位的程序(我之前就是下载32位的),报了个驱动用不了的错。
#[ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
#解决办法:重新下载驱动程序,默认安装,会把odbc驱动换成64位,就好了

#b使用ODBC连接数据库报错:
#在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配" 问题总结
#原来是系统是64位的原因。。。
#64位电脑系统中,在程序连接ODBC数据源出现此错误提示时,
#检查配置ODBC数据源时是用的“C:\Windows\SysWOW64\odbcad32.exe“还是用的“C:\Windows\System32\odbcad32.exe”,前者是32位的,后者是64位的,如果用一个不行,就用另外一个试试。
#最好直接用 管理工具-odbc数据源64位(电脑是64位)

#参考文章https://blog.csdn.net/hongweigg/article/details/49779943
------------------------------------------------------------
#2.2.1设置用户DSN,连接数据库
#配置好驱动,在用户DSN 下面配置数据源
#配置方式跟navicat连接数据库一样(打隧道注意更换端口号)
#注意:连接的数据库字符集为utf8时,在设置用户DSN时,可设置字符集(details-conection-character set)为gbk或者GB2312
library(RODBC)
channel<-odbcConnect(dsn="wuliangye", #输入用户数据源名称
                uid="wuliangye", #用户名
                pwd="wuliangye_20180723_0930" #密码
                 )
sqlTables(channel);#查看数据中的表
t2 <- sqlQuery(channel,"select * from history_track limit 10")
View(t2)

#或者存成数据表查看:
channel<-odbcConnect("wuliangye", uid="wuliangye", pwd="wuliangye_20180723_0930")
data<-sqlFetch(channel,"history_track_copy")
View(data)
-----------------------------
#或者 连接的数据库字符集为utf8时,在设置用户DSN时,可设置字符集utf8同时使用DBMSencoding参数
#2.2.2连接数据库进行查询: P39
library(RODBC)
channel<-odbcConnect("wuliangye", uid="wuliangye", pwd="wuliangye_20180723_0930",
                DBMSencoding="utf8")#使用参数DBMSencoding='utf8'时dsn配置Character Set参数也要选utf8
sqlTables(channel);#查看数据中的表
t2 <- sqlQuery(channel,"select * from history_track limit 10")
View(t2)

标签:数据源,数据库,ODBC,DSN,64,MySQL,连接
From: https://www.cnblogs.com/lizixi/p/17305797.html

相关文章

  • 力扣1098(MySQL)-小众书籍(中等)
    题目:书籍表Books: book_id是这个表的主键订单表Orders:order_id是这个表的主键。book_id是Books表的外键。问题你需要写一段SQL命令,筛选出过去一年中订单总量少于10本的书籍。注意:不考虑上架(availablefrom)距今不满一个月的书籍。并且假设今天是2019-06-......
  • 数据库连接池
    selectcount(*)fromv$process;--3622selectvaluefromv$parameterwherename='processes';selectcount(*)fromv$sessionwherestatus='ACTIVE';selectusername,a.*fromv$sessionawhereusernameisnotnullorderbya.siddesc......
  • MySQL 5.6.39 修改 root 密码不生效
    记一次MySQL 修改 root 密码不生效的问题,修改密码后新密码不生效,依旧只能使用旧密码登录,改了个寂寞。一、版本MySQL5.6.39二、问题使用 update 命令修改密码:updateusersetpassword=password('新密码')whereuser='root'andhost='%';刷新权限:flushprivilege......
  • MySQL主从复制原理剖析与应用实践
    vivo互联网服务器团队-ShangYongxingMySQLReplication(主从复制)是指数据变化可以从一个MySQLServer被复制到另一个或多个MySQLServer上,通过复制的功能,可以在单点服务的基础上扩充数据库的高可用性、可扩展性等。一、背景MySQL在生产环境中被广泛地应用,大量的应用和服务......
  • MySql8.0修改root密码
    MySQL5.7 的版本,因为在user表中没有password字段,一直使用下边的方式来修改root密码usemysql;updateusersetauthentication_string=password('root') whereuser='root'现在要用MySQL8.0.11版本,装好MySQL后用上边方法修改密码,一直报错。后来去掉password()函数后,没有报......
  • 数据库:Redis哨兵及cluster集群部署
    1、什么是哨兵模式哨兵模式:可以自动切换解决单点故障,但是不能负载均衡,存储能力受限制。哨兵核心功能:在主从复制的基础上,实现了主节点的自动故障转移2、哨兵的作用监控:监控主节点和从节点是否在正常运行故障自动转移:当主节点不能正常工作时,哨兵会开始自动故障转移操作,它会将失效......
  • 数据库命名规范
    字段命名使用英文字母、数字和下划线,多个单词之间用下划画分隔,禁止用大写,全部采用小写。字段名称一般采用名词或动宾组合:eg:user_nameis_good一般不超过三个单词最好给字段一个默认值,最好不能为null,字符型的默认值为一个空字符串,数值型的默认值为0,逻辑型的默认值为0在命......
  • 数据库:Redis数据库高可用
    一、Redis数据库持久化1、redis高可用类型高可用定义:范围宽泛,除保证提供正常服务,还要考虑数据容量的扩展,数据安全不安全是否会丢失等。①持久化:最简单的高可用方法,主要是数据备份即将reids的内容存储到硬盘中保证数据不会因为进程退出丢失。2、redis实现持久化方式及优缺点①RDB......
  • MySQL函数
    HEX[[email protected]][test]>select16,HEX(16);+----+---------+|16|HEX(16)|+----+---------+|16|10|+----+---------+1rowinset(0.00sec) CAST[[email protected]][test]>createtabletest_col_sort(userchar(10),typeenum(�......
  • 51 openEuler搭建PostgreSQL数据库服务器-安装、运行和卸载
    51openEuler搭建PostgreSQL数据库服务器-安装、运行和卸载51.1安装配置本地yum源,详细信息请参考《openEuler22.03-LTS搭建repo服务器》清除缓存。#dnfcleanall例如示例命令如下:[root@superman-21~]#dnfcleanall36filesremoved[root@superman-21~]#......