嵌入式数据库mSQL在Linux下的应用

分享到:

 嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。

一、嵌入式数据库简介

嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精简代码编写的,对于嵌入式设备,其速度更快,效果更理想。嵌入式运行模式允许嵌入式数据库通过 SQL 来轻松管理应用程序数据,而不依靠原始的文本文件。嵌入式数据库还提供零配置运行模式,这样可以启用其中一个并运行一个快照。

在嵌入式系统中,对数据库的操作具有定时限制的特性,这里把应用于嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统(ERTDBS)。

可靠性要求是毋庸置疑的,嵌入式系统必须能够在没有人工干预的情况下,长时间不间断地运行。同时要求数据库操作具备可预知性,而且系统的大小和性能也都必须是可预知的,这样才能保证系统的性能。 嵌入式系统中会不可避免地与底层硬件打交道,因此在数据管理时,也要有底层控制的能力,如什么时候会发生磁盘操作,磁盘操作的次数,如何控制等。底层控制的能力是决定数据库管理操作的关键。

目前嵌入式软件系统开发的挑战之一,体现在对各种数据的管理能否建立一套可靠、高效、稳定的管理模式,嵌入式数据库可谓应运而生。

嵌入式数据库是嵌入式系统的重要组成部分,也成为对越来越多的个性化应用开发和管理而采用的一种必不可少的有效手段。

嵌入式数据库用途广泛,如用于消费电子产品、移动计算设备、企业实时管理应用、网络存储与管理以及各种专用设备,这一市场目前正处于高速增长之中。

举简单例子,手机原来只用来打电话、发短信,现在手机增加了很多新的功能,比如彩信、音乐、摄影、视频等等,应用的功能多了,系统就变得复杂。

二 、mSQL 简介

mSQL(mini SQL)是一个单用户数据库管理系统,个人使用免费,商业使用收费。由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。mSQL(Mini SQL)是一种小型的关系数据库,性能不是太好,对SQL语言的支持也不够完全,但在一些网络数据库应用中是足够了。由于mSQL较简单,在运行简单的SQL语句时速度比MySQL略快,而MySQL在线程和索引上下了功夫,运行复杂的SQL语句时比mSQL,PostgreSQL等都要快一些。最新版本是2005年5月8日发布的3.7.MSQL的标志是一个鹿。

mSQL的技术特点:安全性方面,mSQL通过ACL文件设定各主机上各用户的访问权限,缺省是 全部可读/写。mSQL缺乏 ANSI SQL 的大多数特征,它仅仅实现了一个最最少的API,没有事务和参考完整性。mSQL与Lite(一种类似C的脚本语言,与分发一起发行)紧密结合,可以得到一个称为 W3-mSQL的一个网站集成包,它是JDBC、ODBC、Perl和PHP API.

三 、安装Msql

目前,它以两种形式发布,一种是以RPM软件包方式,另一种是用tar压缩的源代码方式。对于RPM软件包方式的软件包安装很简单,只用一条命令就可以完成:Rpm –ivh msql-3.7.rpm

而对于以源代码方式发布的mSQL安装则要麻烦一些。首先用gunzip解压软件包“gunzip msql一3.7.tar.gz”;接着用。setup进行设置编译选项;然后就可以开始编译mSQL源程序“make all”l最后执行“make install” 即可完成安装。

在实际应用中我们改动得最多的是mSQL—User 和Admin—User这两个参数。mSQL—User指明运行mSQL数据库服务程序的用户,而Admin—User指明能对mSQL数据库系统执行特权操作(如:关闭数据库服务程序的运行,创建数据库等操作)的用户。因此,如果你希望mSQL服务程序以database这个用户运行,指定admin这个用户能执行数据库操作,你要将mSQL—User和Admin—User所在的行分别改为:mSQL—User = database和Admin—User = admin.另外你还必须将Hughes目录下的文件和目录的属主改为database.在配置完成后,注销当前用户的身份,重新以msql.conf的参数 mSQL—User设定的用户登录到系统,进入/usr/local/Hughes/bin目录键入如下的命令:。/msql3d &,这样就启动了mSQL数据库系统。msql.conf典型配置文件如下:

# msql.conf - Configuration file for Mini SQL Version 3

# This configuration sets all options to their default values.

# Note : %I is expanded to the value of the Inst_Dir element is included in a value.

[general]

Inst_Dir = /usr/local/msql3

mSQL_User = daemon

Admin_User = root

Pid_File = %I/msql3.pid

TCP_Port = 1114

UNIX_Port = %I/msql3.sock

[system]

Msynch_Timer = 30

Host_Lookup = True

Read_Only = False

Num_Children = 3

Table_Cache = 8

Sort_Max_Mem = 1000

Force_Munmap = False

Query_Log = False

Update_Log = False

Local_Access = True

Remote_Access = False

四、mSQL工具程序

工具名称:msql

功能:可与mSQL 服务器连线,直接存取资料库。

工具名称:relshow

功能:可得知mSQL 服务器资料库的架构。

工具名称:msqladmin

功能:此工具可管理资料库,做新增、删除资料库 等动作,还可以关闭mSQL 服务器。功能依照参数不同来决定。

参数选项:createdb_name新增一个名叫db_name的资料库。

dropdb_name删除名叫db_name的资料库。

shutdown关闭mSQLServer. reload重新读取ACL设定档案,采用新的设定值。

version显示系统版本与相关资讯。

stats显示系统的统计资料。

工具名称:msqldump

功能:可产生一个包含了SQL命令的ASCII档案,这个档案可以重建资料库架构。

工具名称:msqlexport

功能:将资料库某table中的所有资料一笔笔显示出 来。

工具名称:msqlimport

功能:可从一个文字档中的资料一笔笔转换到资料库中。

五、msql的API 函数

对嵌入式系统而言。应用程序往往是通过调用SQL的API函数来执行对特定数据库的操作。API函数使得任何c语言程序都可以与mSQL的数据库引擎进行通信。

表1 mSQL主要API函数表

 

总结:从1996年发布mSQL 1.0到目前的mSQL 3.7,mSQL的性能得到不断的提升,世界知名的HP和Cisco等公司都在使用mSQL.本文对mSQL的特性、配置、API函数及应用等做了介绍,更多的技术资料可以参考*****。目前国内还没有msql书籍,更多msql更高级的使用技术,读者可以参考此书:Mini SQL Version 3 Users Guide and Reference

继续阅读
超全Linux图书/教程,一次收齐!

1、32份LinuX资料大全打包合集 http://microchip.eefocus.com/module/forum/thread-2779-1-1.html 2、图书集锦 《嵌入式设计及Linux驱动开发指南——基于ARM9处理器》 《嵌入式设计及Linux驱动开发指南——基于ARM9处理器》是基于ARM+Linux嵌入式系统开发的一本实用指导书籍,着重介绍了嵌入

动态库的连接问题

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

Windows系统市场份额首次跌破90%大关

这几个月来,相关Windows 10的新闻一直都是市场份额涨涨涨。不过如果将Windows家族系统看做一个整体,情况可能就有些不大一样了。Net Applications今年4月份的数据显示,Windows系统的市场份额10年来首次跌破90%大关,这还是在Windows 10正在热推的当下。

一种智能家居指纹识别门禁系统设计方案

指纹的唯一性和稳定性使其成为目前被广泛应用的生物识别技术之一,我爱方案网小编为大家介绍的智能家居指纹识别门禁系统设计方案采用FPI指纹识别模块,结合Linux设计,能够实现准确、快速地完成身份验证实现开关门功能和定时快速的报警功能。

你好,吉波”:可与人交流的社交式机器人

机器人能够有“情感”,并像真正的人类那样与人对话?听起来是个科幻故事。不过,机器人专家们已经开发出了一种能够与人类交流的家庭用社交式机器人,并希望它成为“家庭的一员”。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss