本帖最后由 茶叶feng 于 2018-8-7 20:00 编辑  
 
mnesia:start()启动数据库的时候,必定会创建一个名为schema的表在erlang OTP并发编程实战中有个例子,代码如下: 
%% 前面调用了mnesia:start(). 
add_extra_nodes([Node | Tail]) -> 
    case mnesia:change_config(extra_db_nodes, [Node]) of 
        {ok, [Node]} -> 
            {atomic, ok} = mnesia:add_table_copy(schema, node(), ram_copies),%% 这里报错了             {atomic, ok} = mnesia:add_table_copy(key_to_pid, node(), ram_copies),             Tables = mnesia:system_info(tables), 
            mnesia:wait_for_tables(Tables, ?WAIT_FOR_TABLES); 
        _ -> 
            add_extra_nodes(Tail) 
    end. 
 这样做的话,新加入分布式mnesia的节点本地数据库就回重复创建schema而报错,具体原因不知道是不是otp版本问题还是我代码存在问题,希望有大神指点 
 
补充一下: 
我把红色的那句注释了之后,代码就能正常运行了 
 |