数据分析师在工作中会经常做这一件事,R从远程数据库中取数,然后进行数据处理、分析和绘图。本文我们介绍R连接远程MySQL。
本地和远程连接
只要本地和远程能ping
通,即可访问远程数据库。
- 本地和远程在同一网段。如
192.168.1.101
和192.168.1.102
,前三位地址相同则在同一网段~ - 关闭防火墙
- 如
ping 远程ip地址
能返回数据则说明本地和远程可以连接
R连接远程MySQL
SendQuery
1 | library(RMySQL) |
GetQuery
感谢王丽华同学发现GetQuery效率更高~
1 | library(RMySQL) |
解决数据乱码
MySQL设置
服务器和客户端编码最好改成utf8
1 | mysql> show variables like "%character%"; |
R语言设置
windows下R读取远程MySQL的数据,出现了乱码,时间紧张,没有仔细找资料解决,暂时设置编码gbk
1 | dbSendQuery(con1,"set names gbk")# 设置gbk编码解决R乱码 |
解决select语句每次只返回500条
返回所有行,需添加n = -1
1 | mydata = dbFetch(res1,n = -1) |
R数据框写入数据库
1 | dbWriteTable(con1,"sql_tablename",dataframe, |