如何使erlang与mysql连接?

Posted

技术标签:

【中文标题】如何使erlang与mysql连接?【英文标题】:how do I make erlang connect with mysql? 【发布时间】:2012-01-15 09:14:12 【问题描述】:

我正在尝试使用 odbc 将一些 erlang 代码连接到 mysql 服务器。

我已经使用 odbc:start() 启动了 odbc 管理器。

但我根本无法让连接调用正常工作,

我的连接调用如下所示:

odbc:connect("server=localhost;port=3306;Uid=root",[]).

我唯一需要处理的是错误:

error,"没有可用的 SQL 驱动程序信息。与数据库的连接失败。"

如果有人可以帮助我,我将不胜感激。

/马丁

【问题讨论】:

【参考方案1】:

我认为在您的 DSN 中配置驱动程序存在一些问题。

试试这个,

在 /etc 目录中的 odbc.ini 文件中

编写以下配置

[myodbc1]
Driver       = /usr/lib/odbc/libmyodbc.so
Description  = MySQL ODBC 2.50 Driver DSN
Server       = localhost
Port         =
User         = <Mysql username>
Password     = <Mysql password>
Database     = <database name>
Option       = 3
Socket       =

并在您的代码中编写以下内容

Connecting_Str="DSN=myodbc1"
odbc:connect(Connecting_Str,[])

告诉你得到了什么。

.

【讨论】:

【参考方案2】:

我从@dizzyd 那里听说过关于erlang-mysql-driver 的好消息。

【讨论】:

我认为这是一个很好的答案,驱动程序开箱即用,使用起来非常直观。【参考方案3】:

我听说mysql有很好的非odbc驱动(但没有使用它,因为有其他db)。我强烈推荐你使用它,因为来自 erlang 发行版的 ODBC 应用程序有很多不可用的特性和糟糕的文档。你可以在这里阅读我的问题,它主要与 odbc 驱动程序有关。

【讨论】:

【参考方案4】:

您没有在 DSN 中配置驱动程序。 ODBC 系统不知道使用哪个。试试这个:

odbc:connect("driver=MySQL;server=localhost;port=3306;Uid=root",[]).

【讨论】:

它返回了同样的错误。error,"No SQL-driver information available. Connection to database failed."我开始思考它是否是“无法看到驱动程序库”的排序错误。MySql 以一种奇怪的方式自行安装在我的麦克...

以上是关于如何使erlang与mysql连接?的主要内容,如果未能解决你的问题,请参考以下文章

Erlang:控制Erlang进程崩溃时如何使连接的外部OS进程自动死亡?

windows服务器下如何修改mysql使mysql允许任何IP远程连接

如何使MySQL前后端连接SESSION变量保持一致

如何在 MySQL 中的两个表之间进行两次连接,以使它们相互链接?

如何查看打开了多少 MySQL 连接?

erlang驱动使用mysql-otp