7

如何从 Julia 中的 MySQL 数据库中获取数据?

看起来这个包提供了连接任何数据库的工具,包括 MySQL。但是,看起来我必须先设置 ODBC DSN 才能连接到它(我一开始不知道它是什么,尽管我已经使用 MySQL 两年了)。所以我尝试通过阅读MySQL 文档中的这个页面来配置它......但立即碰壁。

一,我找不到myodbc-installer在我的 OS X 10.8.5 中命名的命令。二,没有这样的应用程序ODBC Administrator,而是ODBC manager在我的系统中有 - 所以我认为文档太过时了......对吗?

此外,即使我打开ODBC manager并尝试单击Add选项卡,屏幕上User DSN也没有检测到。driver那么如何在 Julia 中配置 ODBC DSN 并使用 MySQL 呢?

另外,我是否必须处理如此繁琐的设置过程?我想使用一个包(如果有的话),它与RMySQLR 中的包一样直观且易于使用,这不会迫使我关心 DSN - Julia 中有任何这样的包吗?

我在 Julia 的 0.2.0-rc 上,并且已经通过Pkg.add("ODBC"). MySQL 版本是 5.3.6,通过 MAMP 安装。

谢谢。

4

1 回答 1

10

Jacob Quinn 这里是 Julia 的 ODBC 包的包维护者。

有几件事可以帮助您了解该过程的工作原理:

-ODBC 是最初由 Microsoft 开发的 API 中间层,用于创建数据库系统和应用程序之间的通用接口。这很有用,因为随着不同数据库系统的数量,很难有可以可靠地连接到任何数据库的应用程序。

-ODBC 已通过 2 个主要项目移植到 Linux/Unix/OSX 系统:iodbc(主要是 OSX)和 unixODBC(Linux)

-API的基本组件是ODBC Manager,它是中间层,DB系统,应用程序,以及ODBC驱动程序,它是DB特定的,实际上实现了应用程序之间的通信-ODBC Manager和ODBC Manager-DB系统。

-在 RMySQL 的情况下,只有 MySQL 驱动程序已使用 R 包装函数实现,这些函数允许连接到 MySQL 数据库系统

- 在 ODBC.jl(以及 R 的相应 RODBC)的情况下,采用更通用的方法,其中提供 ODBC 管理器的包装函数,如果用户安装了正确的 DB 驱动程序,则允许与任何DB 系统连接和连接字符串

希望这有助于更好地理解 ODBC 过程。

因此,对于您的情况,您似乎没有安装 MySQL 驱动程序,因为它没有显示在您的 ODBC 管理器中。你可以在这里找到驱动程序。

安装驱动程序后,设置 DSN 应该非常简单(遵循 MySQL 文档或优秀的 connectionstrings.com,MySQL 部分)。

然后,您应该能够在 julia 中开始使用 ODBC:

Pkg.add("ODBC")
using ODBC
ODBC.connect(dsn)
query("select * from customers")

如果您在设置或安装东西时遇到任何其他问题或麻烦,请随时在此处打开问题,我非常愿意帮助您解决设置问题以帮助您继续前进。

于 2013-10-18T15:16:17.067 回答