標籤:blog http io ar sp for 檔案 on 資料
http://blog.csdn.net/flyinmind/article/details/7740540
項目中用到erlang,同時也用到mysql。慣例,google。
但是,按照網上說的做,有些出入,行不通,需要自己摸索,下面記錄我摸索的東西。
1、下載erlang-mysql-driver;
:https://github.com/dizzyd/erlang-mysql-driver
2、解壓到mysql目錄,不羅嗦了;
3、編譯
要先配置erlang路徑,在/etc/profile中,將erlang的bin路徑寫入比如PATH=$PATH:/home/erlang/bin
否則提示rebar找不到到escript。
在源碼目錄,運行make,沒有任何提示,所以不用這種方法,
將include下的mysql.hrl拷貝到src目錄下,然後“erlc *.erl”,得到beam檔案
在源碼mysql目錄下建立ebin目錄,將這些beam檔案拷貝到ebin下。
最後的目錄結構式這樣的
mysql
|---ebin
|---src
|---include
4、將整個mysql目錄移到erlang中,假設你的erlang放在/home/erlang下
將mysql移到/home/erlang/lib/erlang/lib下,而不是直接放在/home/erlang/lib下。
可以了,開啟erlang的終端測試一下
mysql:start_link(conn, "資料庫IP或網域名稱", 3306, "root", "密碼", "資料庫名稱", undefined, utf8).
{data, Result} = mysql:fetch(conn, <<"select * from t_users">>).
Rows = mysql:get_result_rows(Result).
5、去除不必要的列印資訊
增加一個log函數,只容許error層級的列印,其他的都不打了。
log(Module, Line, Level, FormatFun) ->
case Level of
error ->
{Format, Arguments} = FormatFun(),
io:format("~w:~b: "++ Format ++ "~n", [Module, Line] ++ Arguments);
_ -> o
end
.
mysql:start_link(conn, "資料庫IP或網域名稱", 3306, "root", "密碼", "資料庫名稱", fun log/4, utf8).
希望上面的內容對你有用,減少不必要的時間浪費:)
erlang串連mysql