R连接mysql数据库(ODBC)

摘要:
警告消息:1:InodbcDriverConnect(“DSN=Rdata;UID=root”):[RODBC]错误:stateIM002,代码0,消息[Microsoft][ODBC驱动程序管理器]未找到数据源名称,也未指定默认驱动程序。当R语言从数据库中获取数据时,会发生上述错误。这是由于配置ODBC数据源失败造成的。以下描述了此问题的解决方案,还描述了R
Warning messages:
1: In odbcDriverConnect("DSN=Rdata;UID=root") :
  [RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
当R语言从数据库取出数据时,出现以上错误,这是由于未配置ODBC数据源引起的错误,以下将介绍该问题的解决方案,同时介绍R连接mysql数据库的方法
一、配置ODBC数据源
1.下载mysql ODBC【http://dev.mysql.com/downloads/connector/odbc/】,如果觉得注册麻烦可点击我的网盘链接【链接:http://pan.baidu.com/s/1c0PWyHE 密码:g8ha 注意:该软件包适用于Windows 64位】
2.安装好了mysql ODBC之后添加,首先打开控制面板-管理工具-ODBC 数据源(对应自己系统打开相应数据源)
R连接mysql数据库(ODBC)第1张
3.ODBC 数据源添加
R连接mysql数据库(ODBC)第2张

R连接mysql数据库(ODBC)第3张

4.设置ODBC数据源参数
R连接mysql数据库(ODBC)第4张

以上完成了数据源的配置,接下来打开R软件利用RODBC包连接mysql数据库

二、下载并加载RODBC包
> install.packages( "RODBC" );#下载RODBC包
> library( "RODBC");#加载RODBC包
三、使用
复制代码
1.建立并打开链接【odbcConnect( "数据源名称",uid="用户名",pwd="密码" )】,返回mysql连接标识,数据源名称为上面自己设置的
> con = odbcConnect( "Rdata",uid="root",pwd="" );#数据源:Rdata(设置时的名称),用户名:root,密码为空

2.从数据库读取数据表,返回一个数据框【 sqlFetch( mysql连接标识,'表名' ) 】
> result1 = sqlFetch( conn,'test' );
> result1           #显示结果
      name score
1 zhangsan    90
2   wangwu    98

3.向数据库提交查询【 sqlQuery( mysql连接标识,"sql命令" ) 】
> result2 = sqlQuery( conn,'select * from test where score>90' );
> result2
    name score
1 wangwu    98

4.关闭连接【 close( mysql连接标识 ) 】
> close( conn );
复制代码

常见错误:
> conn = odbcConnect( "Rdata",uid="root",pwd="" )
Warning messages:
1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state HY000, code 2003, message [MySQL][ODBC 5.3(a) Driver]Can't connect to MySQL server on '127.0.0.1' (10061)
2: In odbcDriverConnect("DSN=Rdata;UID=root") : ODBC connection failed
  
这可能是由于没有打开mysql,只有打开后才能连接

补充:mysql ODBC ANSI driver 和Unicode drive区别:Unicode driver版本提供了更多字符集的支持,也就是提供了多语言的支持;而ANSI driver版本是只针对有限的字符集的范围。

免责声明:文章转载自《R连接mysql数据库(ODBC)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇centos5.7下的kdumpCentOS 7 安装以及配置桌面环境下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【数据分析&数据挖掘】数据合并和拼接案例

1 importpandas as pd 2 importnumpy as np 3 4 #加载数据——detail 5 detail_1 = pd.read_excel("./meal_order_detail.xlsx", sheetname=0) 6 detail_2 = pd.read_excel("./meal_order_detail.xls...

这样做,免费从Oracle同步数据

点击▲关注 “数据和云” 给公众号标星置顶 更多精彩 第一时间直达 刘伟 刘伟,云和恩墨软件开发部研究院研究员;前微博DBA,主要研究方向为开源数据库,分布式数据库,擅长自动化运维以及数据库内核研究。 不得不承认的一点是,当前数据库的使用趋势,至少在国内,是逐渐从Oracle转向MySQL(扩大化概念的话,就是包括PG等在内的开源数据库,以及rds类的云...

springboot 和 mongdb连接问题 Exception in thread "main" com.mongodb.MongoSecurityException:

1 Exception in thread "main" com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=SCRAM-SHA-1, userName='user', source='userdb', password=<hid...

Google Earth KML数据格式转换成Shp数据格式(转)

Link: http://www.cnblogs.com/sirc/archive/2010/07/19/1780699.html 1 打开Google Earth ,用工具条可以绘制点线面,比如画一条道路面: 点击OK结束画图操作 2 保存为KMZ或KML文件格式 File—Save—Save Place As 3 利用ArcGis的Data I...

C#批量向数据库插入数据

程序中,批量插入数据有两种思路。 1、用for循环,一条一条的插入,经实测,这种方式太慢了(插入一万条数据至少都需要6-7秒),因为每次插入都要打开数据库连接,执行sql,关闭连接,显然这种方式不可行。 2、使用SqlBulkCopy,在程序中定义一个DataTable,把需要插入的数据存储在DataTable中,注意DataTable中的列需与数据库中保...

在linux上oracle服务启动停止详细

转至:https://www.cnblogs.com/baihuitestsoftware/articles/6365431.html 在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动or...