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 数据源(对应自己系统打开相应数据源)
3.ODBC 数据源添加


4.设置ODBC数据源参数

以上完成了数据源的配置,接下来打开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数据库方法详解的更多相关文章

  1. JDBC连接mysql数据库操作详解

    1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  2. 远程连接mysql 授权方法详解

    今在服务器上 有mysql 数据库,远程访问,不想公布root账户,所以,创建了demo账户,允许demo账户在任何地方都能访问mysql数据库中shandong库. 方案一: 在安装mysql的机器 ...

  3. cmd连接mysql的方法详解(转载)

    连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登 ...

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

    版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[+]   R语言连接数据库常用的方法有2种: 1.使用R数据库接口 连接MySQL,使用RMySQL包,使用前RMySQL包要先安 ...

  5. MySQL数据库优化详解(收藏)

    MySQL数据库优化详解 mysql表复制 复制表结构+复制表数据mysql> create table t3 like t1;mysql> insert into t3 select * ...

  6. MySQL数据库备份详解

    原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据 ...

  7. 局域网内远程连接OPC配置方法详解

    局域网内远程连接OPC配置方法详解 https://wenku.baidu.com/view/20fb8ea6d1d233d4b14e852458fb770bf78a3bcc.html   OPC服务 ...

  8. 如何查看mysql数据库的引擎/MySQL数据库引擎详解

    一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mys ...

  9. QTP连接MYSQL数据库方法

    1.首先安装mysql数据驱动,qtp在windows系统下操作连接mysql,所以下载mysql-connector-odbc-   5.1.8-win32.msi 下载地址:http://mysq ...

随机推荐

  1. [软工作业]-软件案例分析-CSDN

    [软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...

  2. js模板引擎laytpl的使用

    在我们实际的开发过程中,可能会遇到使用ajax去后台获取一堆的数据,然后动态的渲染到页面上.比如:去后台获取一个list集合,然后将数据以表格的形式展示在页面上.另外一种可能发生的情况就是页面上需要批 ...

  3. Linux多线程编程实例解析

    Linux系统下的多线程遵循POSIX线程接口,称为 pthread.编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a.顺便说一下,Linux ...

  4. Spring Security:如何在Postman中优雅地测试后端API(前后端分离)

    前言 在Postman中可以编写和执行自动化测试,使用 JavaScript 编写基本的 API 测试,自由编写任何用于自动化测试的测试方案. 在POSTMAN中读取Cookie值 1. 我们需要向& ...

  5. 超级好用的轻量级JSON处理命令jq

    1 简介 jq是一个轻量级的命令行工具,让你可以非常方便地处理JSON数据,如切分.过滤.映射.转化等,就像sed.awk.grep文本处理三剑客一样.jq是用C写的,没有运行时依赖,你可以直接下载可 ...

  6. python 处理xml 数据

    1 import xml.sax 2 import xml.sax.handler 3 4 # python 处理xml 数据 类,将xml数据转化为字典 5 ''' 6 原数据:<?xml v ...

  7. You (oracle) are not allowed to access to (crontab) because of pam configura

    用oracle用户添加备份计划任务,crontab -e,提示:You (oracle) are not allowed to access to (crontab) because of pam c ...

  8. 为何我中断执行的线程不起作用,Why

    摘要:我们就以一个案例的形式,来为大家详细介绍下为何中断执行的线程不起作用. 本文分享自华为云社区<明明中断了线程,却为何不起作用呢?>,作者:冰 河. 当我们在调用Java对象的wait ...

  9. 自由导入你的增量数据-根据条件将sqlserver表批量生成INSERT语句的存储过程实施笔记

    文章标题: 自由导入你的增量数据-根据条件将sqlserver表批量生成INSERT语句的存储过程增强版 关键字 : mssql-scripter,SQL Server 文章分类: 技术分享 创建时间 ...

  10. Python基础(filter)

    arr = [1,2,3,1,1,3,6,9] def f1(x): if x > 2: return True arr1 = list(filter(f1,arr)) print(arr1)# ...