免责声明:我不是程序员,so...be温和。
在过去的几天里,我一直试图让我的Mac电脑上的R工作室连接到一个MySQL数据库。第一个障碍是在运行命令安装ODBC包时:
配置: error:"ODBC标头sql.h和sqlext.h未找到“错误:程序包'RODBC‘**删除’/usr/lib64 64/R/库/RODBC‘的配置失败
在大量搜索之后,我发现通过安装和更新名为brew的命令,通过运行以下命令解决了这个问题:
brew更新& brew安装unixODBC &\ wget "http://cran.r-project.org/src/contrib/RODBC_1.3-10.tar.gz“&& R安装RODBC_1.3-10.tar.gz
安装了RODBC。现在,我试图通过运行以下语法(如在线和包的文档中所描述的那样)连接到数据库:
odbcConnect(dsn,uid = "",pwd = "",.)
当我这样做时,我会得到以下错误:
警告消息: 1:在odbcDriverConnect("DSN=xyz;UID=xyz;PWD=xyz")中: RODBC错误:状态IM012,代码0,消息unixODBCDRIVER关键字语法错误2: In odbcDriverConnect("DSN=xyz;UID=xyz;PWD=xyz"):ODBC连接失败
所以,似乎语法是错误的,但我不知道在哪里。R文档说错误IM012是语法错误(注意:实际凭证替换了'XYZ‘),我有几个问题:
First:
在MySQL工作台上,我输入以下参数来访问数据库: 1.连接名称:数据库的组合名称2.主机名: amazon数据库链接3.端口(缺省值为3306) 4.用户名5.密码
在odbcConnect的RODBC语法中(dsn,uid = "",pwd = "",.)你是否把数据库的位置,大概是一个ip或链接?我尝试了DNS,但它没有工作(即得到相同的语法错误)。
第二版:
最重要的是回答我的问题:
为什么我会得到这个IM012语法错误?正确的语法是什么?在这个语法中,有空间告诉程序数据库位于哪里?
提前感谢您的帮助!
发布于 2015-08-19 22:14:29
如果文件上说:
odbcConnect(dsn, uid = "", pwd = "", ...)你提供了:
odbcDriverConnect("DSN=xyz;UID=xyz;PWD=xyz")这不是相同的语法。请注意每个参数的值周围的引号。而且,似乎每个键值对都应该用逗号分隔,而不是分号.
它也没有提到dsn="",它只说'dsn',所以也许您可以用来自MySQL配置的DSN名称替换它,这听起来像是来自MySQL工作台吗?我使用ODBC管理员来创建DSNs,但是在Mac上,它们通常会出现在/Library/ODBC/odbc.ini或用户帐户中类似的位置中。
椭圆表示你可以提供更多的参数。在ODBC配置中,通常在DSN中提供DATABASE="192.168.254.85“、PORT="3306”等,因此不需要在调用该方法时提供参数。UID和PWD是在“运行时”提供的,因此您没有在配置文件中存储凭据。
发布于 2015-06-29 20:01:16
有时您可以在url/IP的开头添加数据库。所以应该是db_name.url_of_databse
https://stackoverflow.com/questions/31124404
复制相似问题