免责声明:我不是程序员,所以......要温柔。
我花了几天的时间试图让我的Mac上的R studio连接到MySQL数据库。面临的第一个障碍是运行安装ODBC包的命令:
configure:error:“找不到ODBC头sql.h和sqlext.h” 错误:包“RODBC”的配置失败 **删除'/ 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语法错误?正确的语法是什么?在这种语法中哪里有空间告诉程序数据库所在的位置?
提前感谢您的帮助!
答案 0 :(得分:2)
如果文档说明:
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"等,因此您无需在您的DNS中提供参数打电话给那个方法。 UID和PWD在运行时提供'因此,您不会在配置文件中存储凭据。
答案 1 :(得分:0)
有时您可以在url / IP的开头添加数据库..所以它将是db_name.url_of_databse