天天看點

轉載: erlang連接配接mysql

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

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