连接到MySQL数据库并在Julia中获取数据

时间:2013-10-17 18:10:42

标签: mysql macos odbc dsn julia

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

看起来this package提供了连接任何数据库(包括MySQL)的工具。但是,看起来假设我必须首先设置ODBC DSN来连接它(我不知道它是什么,虽然我已经使用MySQL两年了)。所以我尝试通过在MySQL文档中阅读this page来配置它......但是立刻就碰壁了。

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:7)

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

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

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

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

- API的基本组件是ODBC管理器,它是中间层,数据库系统,应用程序和ODBC 驱动程序,它是特定于数据库的,实际上实现了通信应用程序 - ODBC管理器和ODBC管理器 - 数据库系统之间。

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

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

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

因此,对于您的情况,看起来您没有安装MySQL驱动程序,因为它没有显示在您的ODBC管理器中。您可以找到驱动程序here

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

然后,您应该可以在julia中开始使用ODBC:

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

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