erlang mysql连接超时_[原]Erlang连接mysql问题解决

博主在使用Erlang连接MySQL时遇到crypto_app模块启动失败的问题,通过查看错误信息定位到是由于缺少openssl的dll文件。解决方案是下载并安装Win32OpenSSL,并确保其bin目录添加到PATH环境变量中。经过此步骤,问题成功解决,Erlang成功连接到MySQL。
摘要由CSDN通过智能技术生成

情况是这样的,我以前没有用erlang连接过mysql,最近做的东西需要用到mysql,但我最近在用的时候出现一些问题,如下:

1a1e74fe1f5f77643c47350aa85b9771.png

345acffa47cef82b0f643f5a5d63d071.png

代码

E:\Program Files3\erl5.6.5\lib\erlyweb-0.7.1\test>erl

Eshell V5.6.5  (abort with ^G)

1> erlydb:start(mysql, [{hostname, "localhost"}, {username, "root"}, {password,

"sa"}, {database, "test"}]).

=INFO REPORT==== 29-Jun-2010::22:38:11 ===

application: crypto

exited: {shutdown,{crypto_app,start,[normal,[]]}}

type: temporary

mysql_conn:620: greeting version "5.0.41-community-nt" (protocol 10) salt "W1--8

s^[" caps 41516 serverchar <<48,2,0,

0,0,0,0,

0,0,0,0,

0,0,0,0,

0>>salt2 ",jSA,UJSB0iB"

=ERROR REPORT==== 29-Jun-2010::22:38:12 ===

Error in process <0.37.0> with exit value: {badarg,[{erlang,port_control,[crypto

_drv02,5,"sa"]},{crypto,control,2},{mysql_auth,password_new,2},{mysql_auth,do_ne

w_auth,8},{mysql_conn,mysql_init,5},{mysql_conn,init,9}]}

mysql:502: failed starting first MySQL connection handler, exiting

这儿我犯了一个毛病,不会看错误信息,上面的错误信息已经明确告诉你出错的模块,本题为例

exited: {shutdown,{crypto_app,start,[normal,[]]}}

说明本程序在调用模块crypto_app的start函数时出错,我不会看这个,还傻傻的一点点的看源码,想一点点的找到出错的地方,呵(有点可笑)

注意:在这之前要先确定你的erlang和mysql都没有问题,方法下:

mysql验证方法:

C:\Users\Administrator>mysql -u root -psa

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1

Server version: 5.0.41-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

erlang验证方法

C:\Users\Administrator>erl

Eshell V5.6.5  (abort with ^G)

1>

确定没问题后开始对模块crypto_app进行测试。这时可以一点点往下找,不过最方便的方法是直接查找

“application: crypto

type: temporary”

找到如下两个网址:

(这个里面的答案不是我当时找的最接近的,记得到时找到一个教你一步步找错的,挺好!)

可以找到很接近正确答案的东西了,答案就是“ssl application 和 crypto application 都需要在 PATH 中找到 openssl 的 dll 文件。”

下载Win32OpenSSL-0_9_8o.exe(6.88M)或Win32OpenSSL-1_0_0a.exe

注意:在安装的时候,一定注意一点,如图:

b909d58e69b51e27bdce24907b04ffbc.png

如果先下面那个的话, 一定要注意装好后将其 bin 目录加入PATH 中(我就是选择了下面那个选项,而又没有把bin下加入到path下,导致了N天的抓狂)

这步完成后,一切就OK了,这时再测试一下,结果如下:

1a1e74fe1f5f77643c47350aa85b9771.png

345acffa47cef82b0f643f5a5d63d071.png

代码

C:\Users\Administrator

>

erl

Eshell V5.

6.5

(abort with

^

G)

1

>

erlydb:start(mysql, [{hostname,

"

localhost

"

}, {username,

"

root

"

}, {password,

"

sa

"

}, {database,

"

test

"

}]).

mysql_conn:

620

: greeting version

"

5.0.41-community-nt

"

(protocol

10

) salt

"

8!9=g

mof

"

caps 41516 serverchar <<48,2,0,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

>>

salt2

"

4lDM6e}bVexL

"

mysql_auth:

187

: mysql_auth send packet

1

:

<<

5

,

162

,

0

,

0

,

64

,

66

,

15

,

0

,

8

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

0

,

114

,

111

,

111

,

116

,

0

,

20

,

54

,

239

,

170

,

177

,

132

,

242

,

79

,

196

,

24

,

125

,

188

,

8

,

81

,

43

,

86

,

197

,

57

,

142

,

107

,

10

>>

mysql_auth:

187

: mysql_auth send packet

3

:

<<

82

,

79

,

64

,

75

,

64

,

70

,

86

,

85

,

0

>>

mysql_conn:

426

: fetch

<<

"

use test

"

>>

(id

<

0.38

.

0

>

)

ok

2

>

一切OK,太爽了,一周的晦气都消失了。分享一下,免的和我遇到一样错误的人再经历我一样的痛苦一周,哈哈

——2010-07-02  00:50 于福州

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值