• 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).

    希望上面的内容对你有用,减少不必要的时间浪费:)

  • 相关阅读:
    前台调用后台方法循环绑定数据到前台
    禁用绑定在Repeater的控件
    Repeater,ItemDataBound事件,获取绑定列的值,给指定列添加js方法
    Oracle定时值执行存储过程
    A页面跳到B页面,B页面获取A页面的URL
    Jquery获取用户控件页面中控件的值
    Web页面获取用户控件页面中服务器控件的值
    springmvc静态资源;mvc:default-servlet-handler后Controller失效
    创建 Angular 8.0 项目
    window location跳转
  • 原文地址:https://www.cnblogs.com/fvsfvs123/p/4126853.html
Copyright © 2020-2023  润新知