轉載: erlang連線mysql

weixin_34321977發表於2013-12-05

轉自: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).


希望上面的內容對你有用,減少不必要的時間浪費:)

相關文章