`
mozhenghua
  • 浏览: 319497 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

创建Mnesia数据库

阅读更多

最近学习erlang,在erlang中天然集成了一个分布式数据库名字叫mnesia,因为数据库天然就和erlang的元组,记录无缝结合,并且具有良好的分布式特性,能够自动地在几个erlang节点上实现数据复制,效果有点像zookeeper的节点集群,而且mnesia还支持数据库事务特性,所以mnesia在erlang应用中使用得非常频繁。

 

要在本地创建一个mnesia数据库,并且要实现插入,查询功能需要实现以下这几步:

1.启动erlang节点:

erl -mnesia dir '"d://tmp//mnesia"' -sname mynode

 以上这个d://tmp//mnesia目录是存放mnesia数据库的schema数据的,当然这个目录也可以不指定,那么mnesia数据库启动之后将把数据库的schema中的数据放在内存中,如果下次节点重启之后,之前数据库中创建的表结构数据就消失了。

2.接下来就是在erl shell中本地初始化一个空的mnesia数据库

mnesia:create_schema([node()]).

  从参数上是一个节点列表,所以其实需要的话,可以在参数列表上设置多个erlang节点,就能在多个erlang节点上同时创建mnesia数据库了。

3.启动mnesia数据库

  初始化完成了mnesia数据库schema之后,接下来就可以启动mneisa数据库了。

mnesia:start().

 

至此,一个空的mneisa已经创建启动成功了,我们可以调用mnesia:info(). 查看当前mnesia数据库的一些状态,结果如下:

---> Processes holding locks <---
---> Processes waiting for locks <---
---> Participant transactions <---
---> Coordinator transactions <---
---> Uncertain transactions <---
---> Active tables <---
schema         : with 1        records occupying 432      words of mem
===> System info in version "4.4.14", debug level = none <===
opt_disc. Directory "d:/tmp/mnesiaa" is NOT used.
use fallback at restart = false
running db nodes   = ['mynode@aliyun-18097n']
stopped db nodes   = []
master node tables = []
remote             = []
ram_copies         = [schema]
disc_copies        = []
disc_only_copies   = []
[{'mynode@aliyun-18097n',ram_copies}] = [schema]
2 transactions committed, 0 aborted, 0 restarted, 0 logged to disc
0 held locks, 0 in queue; 0 local transactions, 0 remote
0 transactions waits for other nodes: []
ok

 

[{'mynode@aliyun-18097n',ram_copies}] = [schema] 这行上来看当前数据库中只有一个数据库的schema表。

 

  接下来是要在空的数据库中创建表格,并且执行CRUD的操作,请看下一篇博客:http://mozhenghua.iteye.com/admin/blogs/1885918

分享到:
评论

相关推荐

    mnesia数据库文档

    erlang系统自带的数据库mnesia的官方文档。

    erlang mnesia 数据库基本查询

    Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 如何做 Mnesia ...

    mnesiam:Mnesiam使Mnesia数据库的群集变得容易

    Mnesiam使Mnesia数据库的群集变得容易。 可以在上找到模块文档。 安装 该软件包可以通过添加安装mnesiam你在依赖列表mix.exs : def deps do [{ :mnesiam , " ~&gt; 0.1.1 " }] end 在您的应用程序之前,请确保已...

    备忘录:Mnesia分布式数据库的简单+强大接口

    备忘录:Mnesia分布式数据库的简单+强大接口

    Mnesia用户手册(docx版)

    Mnesia用户手册(docx版) 详细讲解Mnesia数据库操作

    Mnesia用户手册(PDF版本)

    Mnesia用户手册(PDF版本) 详细讲述Mnesia数据库操作。

    cachet:Mnesia的内存光盘分派器

    cachet将插入您的mnesia数据库并通过侦听数据库上的事件来工作。 您的主应用程序供稿数据库不必重写。 您的使用数据库的客户端可能需要一些代码更改才能调用cachet API,而不是mnesia (在某些情况下,只需在代码中...

    erlang——Mnesia用户手册.pdf

    3.4.创建新表 4、事务和其他上下文存取 4.1.事务属性 4.2.锁 4.3.脏操作 4.4.记录名与表 4.5.作业(Activity)概念和多种存取上下文 4.6.嵌套事务 4.7.模式匹配 4.8.迭代 5、其它.Mnesia.特性 ...

    Mnesia用户手册 4.4.10版.rar

    Mnesia是一个分布式数据库管理系统(DBMS),适合于电信和其它需要持续运行和具备软实时特性的Erlang应用。 目 录 1 、介绍 . . .. . .. . . .. . 4 1.1 关于 Mnesia . . .. . .. . . .. . 4 1.2 Mnesia ...

    Mnesia User's Guide

    • Mnesia provides an introduction to Mnesia. • Getting Started introduces Mnesia with an example database. Examples are included how to start an Erlang session, specify a Mnesia database directory, ...

    Mnesia用户手册

    Mnesia是一个分布式数据库管理系统(DBMS),适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,是构建电信应用的控制系统平台——开放式电信平台(OTP)的一部分。

    Mnesia用户手册.zip

    Mnesia是一个分布式数据库管理系统(DBMS),适合于电信和其它需要持续运行和具备软实时 特性的Erlang应用。

    ecto_mnesia:Mnesia Erlang术语数据库的Ecto适配器

    ecto_mnesia:Mnesia Erlang术语数据库的Ecto适配器

    Mnesia用户手册.pdf

    Mnesia用户手册.pdf

    Mnesia table fragmentation 过程及算法分析

    Mnesia table fragmentation 过程及算法分析。erlang就算在64位下dets的空间限制仍旧是2g,同样影响了mnesia,如果有更大需求,就必须使用Mnesia的 table fragmentation 技术

    Elixir程序设计语言.pdf

    4.4 4.5 5.1 5.2 5.3 5.4 5.5 5.6 Mnesia 数据库 调试第五部分:程序库 Guardian(基础) Poolboy Benchee Bypass Distillery(基础) StreamData 3 Introduction 绪⾔第⼀部分:基础 基础集合Enum 模块 模式匹配 控制...

    Erlang Mnesia

    This book describes the Mnesia DataBase Management System &#40;DBMS&#41;. Mnesia is a distributed Database Management System, appropriate for telecommunications applications and other Erlang ...

    Mnesia 用户手册中文版 pdf

    Mnesia 用户手册中文版 pdf,把市面上的doc转成pdf,并添加重要章节的书签,细节并不完美,请见谅。

    erlang的小型游戏服务器

    erlang单服游戏服务器,mnesia数据库,小型的游戏demo,编译可以启动,可以用来学习erlang游戏服务器相关的东西

Global site tag (gtag.js) - Google Analytics