如何在Mac OSX 10.11 El Capitan上使用R(RODBC)从MySQL提取数据(通过SSH隧道)

如何在Mac OSX 10.11 El Capitan上使用R(RODBC)从MySQL提取数据(通过SSH隧道),mysql,r,macos,ssh,Mysql,R,Macos,Ssh,我的工作笔记本电脑是MacOSX10.11.3ElCapitan。我目前正在从事一个项目,在这个项目中,我正在开发一个闪亮的应用程序来可视化我们公司MySQL数据库中的数据。我通过“SSH隧道管理器”设置了SSH隧道,并能够通过SquelPro连接MySQL数据。然而,当我尝试使用“RODBC”包连接R(R-version3.2.3/Rstduio版本0.99.491)中的MySQL数据时,我经常遇到问题 最初,我关注这个博客:下载并创建连接器和“odbc.ini”文件。然后将它们移动到正确的位

我的工作笔记本电脑是MacOSX10.11.3ElCapitan。我目前正在从事一个项目,在这个项目中,我正在开发一个闪亮的应用程序来可视化我们公司MySQL数据库中的数据。我通过“SSH隧道管理器”设置了SSH隧道,并能够通过SquelPro连接MySQL数据。然而,当我尝试使用“RODBC”包连接R(R-version3.2.3/Rstduio版本0.99.491)中的MySQL数据时,我经常遇到问题

最初,我关注这个博客:下载并创建连接器和“odbc.ini”文件。然后将它们移动到正确的位置

但是,当我尝试在R中安装程序包“RODBC”时,安装过程失败,并返回以下错误消息-“configure:error:”ODBC头sql.h和sqlext.h未找到“。然后我按照此链接中的步骤下载了iODBC zip文件:但是,我无法识别archball中的文件'libiodbc.a'。因此,仅仅移动sql.h和sqlext.h文件并没有帮助。我仍然有这个问题

所以,我找到了另一个链接:它说安装unixODBC也可以解决这个问题。因此,我复制了命令并成功下载了unixODBC。这次成功了。我在R中成功调用了库(RODBC)。但是,当我在Rstudio中运行以下R命令时:

connect1 <- odbcConnect(dsn="mysql01", 
                uid="user_name", 
                pwd="pass_words")

似乎我需要为R上的unixODBC配置驱动程序管理器。但是,我不确定在上面的过程中到底出了什么问题。要将R连接到MySQL,下一步该怎么做?

使用ODBC,您可以通过通用驱动程序/提供程序或DSN(预构建的自定义驱动程序/提供程序连接)进行连接。您是否使用服务器凭据创建了mysql01?加载
library(RODBC)
后在R中运行
odbcDataSources()
以查看当前源。看看是否有MySQL驱动程序/DSN出现。嘿,帕菲,非常感谢你的帮助!是的,我仔细检查了我是否在笔记本电脑上的目录-“~/Library/odbc/”下创建了文件“odbc.ini”。该文件包含如下信息:“[mysql01]Driver=/usr/local/lib/libmyodbc5w.so Server=[Server.address]Port=3306 charset=UTF8 User=[User\u name]Password=[passwords]Database=[some\u tables]”此外,我在R中运行了“odbcDataSources()”。它返回“命名字符(0)”。这是否意味着R找不到驱动程序或DSN?这表明没有ODBC驱动程序或DSN可用。您是否曾经手动下载Mac OS版?我只在Windows上工作,因此可能无法完全提供帮助。考虑哪些UNIX和Linux用户有更好的运气。此外,使用本机库,无需安装驱动程序。是的,我已经下载了MySQL Mac驱动程序的Tar存档,并将驱动程序文件“libmyodbc5w.so”从拱形球复制到目录“/usr/local/lib/”,正如本博客所建议的-。这没用。我还尝试了“RMySQL”库。当我使用所有登录参数调用“dbConnect”时,它会返回“error message(60)”;(我以前是在PC和ubuntu上开发的,Mac对我来说也是新的。谢谢你,尽管是冻糕!非常感谢!
    Warning messages:
1: In odbcDriverConnect("DSN=mysql01;UID=user_name;PWD=pass_words") :
  [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=mysql01;UID=user_name;PWD=pass_words") :
  ODBC connection failed