情况是这样的,我以前没有用erlang连接过mysql,最近做的东西需要用到mysql,但我最近在用的时候出现一些问题,如下:
代码
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
注意:在安装的时候,一定注意一点,如图:
如果先下面那个的话, 一定要注意装好后将其 bin 目录加入PATH 中(我就是选择了下面那个选项,而又没有把bin下加入到path下,导致了N天的抓狂)
这步完成后,一切就OK了,这时再测试一下,结果如下:
代码
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 于福州