今天有一个很奇怪的问题,就是在cowboy 里边调用数据库老是不成功,
是什么原因呢,现象就是如果加载了mnesia 在创建时就会有提示:timeout 并且,数据库文件没有生成,
用mnesia:info 查看,会看到db is not used. 创建的表没有生成。
"opt_disc. Directory "/Users/macbook/Desktop/erlang/cowboy-master/examples/echo_get/Mnesia.nonode@nohost" is NOT used."
但是如果直接打开erl 是可以正常创建数据库,如果加载了cowboy cowlib ranch application 后就不能创建数据库成功,问题我定位在:
mnesia:create_schmea([node()]). 这一行上边,如果加载了cowboy 库就不能加载mnesia 成功。
最后的决解办法是:
application:stop(mnesia), % 这一行就可以解决问题了。。。
mnesia:create_schema([node()]),
mnesia:start(),
后边都是一样的操作。。。。
原因是因为已经启动了数据库,所以先停掉,再启动就可以了。