【问题标题】:connect R to MySQL with RODBC using dsn使用 dsn 通过 RODBC 将 R 连接到 MySQL
【发布时间】:2012-03-02 19:55:50
【问题描述】:

短版:我试图弄清楚如何使用odbcConnect() 函数中的dsn 参数来连接到MySQL 数据库。

加长版:如果这是一个无知的问题,我深表歉意。我没有在标签下找到关于 SO 搜索的答案。我对 R 并不陌生,虽然我不是世界上最重要的专家。我是 MySQL 新手。我一直在努力自学。

我希望能够在 R 中创建表等,并将它们写入 MySQL 中的数据库,然后能够稍后从中进行选择,并将选定的记录读回 R 中进行分析。我可以在 MySQL 中创建一个数据库,选择,导出一个文本文件,然后将该文件读入 R,但我宁愿能够从 R 中完成所有操作。为此,我安装了 RODBC,以便能够将 R 连接到 MySQL直接地。我知道我需要使用 odbcConnect() 函数,但我不明白要为 dsn 参数添加什么来执行此操作,并且无法从 wikihelp file 中弄清楚。

详细信息(如果需要):

I did not establish a uid or password when I set up MySQL

Versions used:          Windows XP;     R 2.10.1;     MySQL 5.5
Locations of exe files: C:\Program Files\MySQL\MySQL Server 5.5\bin  
                        C:\Program Files\R\R-2.10.1\bin  

我希望我需要相当基本的建议——例如,最好假设我什至不知道 dsn 代表什么(尽管这实际上不是真的)。任何帮助表示赞赏。提前致谢。

【问题讨论】:

  • 我不确定您的具体问题可能是什么,但 RODBC 软件包有一个非常详细的vignette 关于设置 DSN 和基本用法。
  • @joran,感谢您的帮助。我已经浏览了小插图的开头,但错过了附录的提及。我刚读过。它建议在管理员工具下使用 Microsoft ODBC Administrator 设置 dsn。我提出来了,但它没有 MySQL 的选项;我应该使用 Microsoft dBase 驱动程序 (*.dbf) 还是其他东西,有没有办法获得 MySQL 的选项?
  • 如果您缺少 MySQL ODBC 驱动程序,我认为您应该阅读标题为“驱动程序来源”的小插图部分。

标签: mysql r dsn rodbc


【解决方案1】:

我可以建议的最简单的解决方案是安装RMySQL。这将为您提供与您正在使用的 MySQL 数据库的本地连接。

如果您除了需要MySQL ODBC drivers 之外还想使用 ODBC,您还需要在 Windows XP 的 ODBC 管理器中设置 ODBC 连接。当您通过连接时,它会要求您输入一个名称,这将是您的 DSN 名称,然后您应该可以在 odbcConnect() 中使用它

【讨论】:

  • 感谢您的帮助。我从 RMySQL 开始,但永远无法让它工作。 SO上有六个关于如何设置RMySQL的问题,它们彼此不同,并且没有一个可以在我的机器上运行。几个建议的 RODBC 更容易使用,这就是我现在在这里的原因。使用您提供的驱动程序链接,我下载并安装了 5.1.10 连接器。它在这里:C:\Program Files\MySQL\Connector ODBC 5.1。现在我该怎么办?我有点不知所措。我想我需要非常基本的信息。
  • Control Panel -> Administrative Tools ->Data Sources。并在那里设置您的访问权限。您将为其命名的名称将是您的 DSN。我不确定您在 Windows 上是否有问题,但在 Linux 上,我的工作就像一个魅力。
  • 我去了那里,它会弹出一个窗口。 MySQL 未在初始选项卡“用户 DSN”下列出;如果我单击“驱动程序”选项卡,则底部会列出“MySQL ODBC 5.1 驱动程序”(如果向下滚动);双击它什么都不做;单击“确定”会使窗口消失,否则似乎什么也不做。它不问我名字,也不提供任何指导。
  • 在用户 DSN 上,您必须执行 Add 并使用 MySQL Driver 配置访问权限
  • 我认为已经足够基本了......它似乎奏效了。但是,在 R 中,sqlTables() 不返回任何内容,而在 MySQL 中的提示符下,show databases 返回多个,每个都有表。这种连接是否只允许我访问我在 R 中创建并写入 MySQL 的表?还是我在某处犯了错误? (除了名称之外,我没有为任何其他字段输入任何内容;有一个带有下拉菜单的“数据库”字段,但并非 MySQL 中列出的所有数据库都显示在那里。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 2017-08-16
  • 2013-06-21
  • 1970-01-01
相关资源
最近更新 更多