mysql - 如何在 Mac OS 10.10.3 (Yosemite) 上使用 ODBC 将 R 连接到 MySQL 数据库

标签 mysql r database macos rodbc

预先免责声明:我不是程序员,所以......要温柔。

过去几天我一直在尝试让 Mac 上的 R studio 连接到 MySQL 数据库。遇到的第一个障碍是运行安装 ODBC 包的命令时:

configure: error: "ODBC headers sql.h and sqlext.h not found" ERROR: configuration failed for package 'RODBC' ** Removing '/usr/lib64/R/library/RODBC'

经过大量谷歌搜索后,我发现这个问题可以通过运行以下命令安装和更新名为brew的东西来解决:

brew update && brew install unixODBC &&\wget "http://cran.r-project.org/src/contrib/RODBC_1.3-10.tar.gz "&&\R CMD INSTALL RODBC_1.3-10.tar.gz

安装了 RODBC。现在,我尝试通过运行以下语法连接到数据库(如在线和包文档中所述):

odbcConnect(dsn, uid = "", pwd = "", ...)

当我这样做时,我收到以下错误:

警告消息: 1:在 odbcDriverConnect("DSN=xyz;UID=xyz;PWD=xyz") 中: [RODBC] 错误:状态 IM012,代码 0,消息 [unixODBC][驱动程序管理器]DRIVER 关键字语法错误 2:在 odbcDriverConnect("DSN=xyz;UID=xyz;PWD=xyz") 中: ODBC 连接失败

所以,语法似乎是错误的,但我不知道哪里错误。 R 文档说错误 IM012 是一个语法错误(注意:将“XYZ”替换为实际凭据)我有几个问题:

第一:

在MySQL Workbench上,我输入以下参数来访问数据库: 1. 连接名称:数据库的虚构名称 2. 主机名:亚马逊云数据库链接 3.端口(保留默认值3306) 4. 用户名 5.密码

在 odbcConnect(dsn, uid = "", pwd = "", ...) 的 RODBC 语法中的哪个位置放置数据库的位置(可能是 IP 或链接)?我对 DNS 进行了尝试,但没有成功(即出现相同的语法错误)。

第二:

最重要的是回答我的问题:

为什么我会收到此 IM012 语法错误?正确的语法是什么?在这个语法中哪里有空间告诉程序数据库所在的位置?

预先感谢您的帮助!

最佳答案

如果文档说:

odbcConnect(dsn, uid = "", pwd = "", ...)

您提供了:

odbcDriverConnect("DSN=xyz;UID=xyz;PWD=xyz")

这不是相同的语法。仅注意每个参数值周围的引号。另外,似乎每个键值对都应该用逗号分隔,而不是分号。

它也没有说 dsn="",它只是说 'dsn' 所以也许你可以用 ODBC 配置中的 DSN 名称替换它,这听起来像是你喜欢来自 MySQL Workbench 吗?我使用 ODBC 管理器来创建 DSN,但在 Mac 上,它们通常会出现在/Library/ODBC/odbc.ini 或用户帐户中的类似位置。

省略号表明您可以提供更多参数。通常,在 ODBC 配置中,您在 DSN 内提供 DATABASE="192.168.254.85"、PORT="3306"等,因此无需在调用该方法时提供参数。 UID 和 PWD 是“在运行时”提供的,因此您无需将凭据存储在配置文件中。

关于mysql - 如何在 Mac OS 10.10.3 (Yosemite) 上使用 ODBC 将 R 连接到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31124404/

相关文章:

r - 走层次树

sql - 规范化一对一 bool 关系

database - 像 Postgres 模式一样的 Oracle 数据库 : Group tables in folders,?

安卓通知: GCM or Service

javascript - 将 toJson R 对象转换为适合 d3.js 树布局的格式

php - SQL 不接受其中包含冒号 (":") 的 INSERT INTO

linux - R,如何在带有时区和垃圾 Unicode 字符的 Linux 上使用 strptime

database - 在数据库中存储标签的最有效方法是什么?

PHP 在行数除以 4 之后得到 <div>

php - 为什么我的查询在 PHP 中慢而在 PHPMYadmin 中快?