如何使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远程连接