Linux下mSQL数据库开发技术
2006-07-12 16:06
253 查看
首先,到站点www.hughes.com.au注册后就能免费下载该软件的最新版本。
mSQL的安装相当简单,二进制版本(针对某一个硬件平台编译后的软件)的安装只
是将文件展开到用户某一目录下然后配置几个参数就可以。例如你下载的文件为:
mSQL-2.0.3.tar.gz,你想把mSQL安装到/usr/local目录下,这时,我们需要先将
这个文件拷贝到/usr/local这个目录,然后键入命令tar zxvf mSQL-
2.0.3.tar.gz,这个命令将展开该压缩文件。一般,mSQL数据库系统的所有文件都
安装到/usr/local/Hughes目录下。接着就是配置mSQL数据库。你所要做的工作就
是要修改/usr/local/Hughes目录下的文件msql.conf。
在实际应用中我们改动得最多的是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目录键入如下的命
令:./msql2d &,这样就启动了mSQL数据库系统。至于带源码的安装软件,看一
看README和INSTALL这些文件一般就能顺利安装完成。
为了将mSQL集成到用户的应用程序中去,mSQL数据库系统为用户提供了一个C
语言的API库和一个解释器:w3—msql,通过C语言的API库,你可以将mSQL集成到用
标准C语言开发的应用程序中去。而有了w3—msql这个工具,你可以通过编写类C语
言脚本语言将mSQL数据库嵌入到html文件中,下面举一程序实例进行说明。
下面的程序片段要完成的功能是将浏览器页面上提交上来的用户名和口令与表
registered—user中的用户名和口令相比较,如果用户名和口令正确,将在页面上
显示注册成功的信息,否则提示用户注册失败。采用C语言实现的方法如下所示:
void main(int argc, char argv[])
{
//解析用户提交上来的用户名和口令并保存到变量username和password—usr中
…
//创建与本机的mSQL数据库系统的套接字
sock=msqlConnect(NULL);
//选择数据库test
if (msqlSelectDB(sock,″test″)==-1)
{
//输出数据库选择失败信息
…
} else
{
sprintf(buff,″select from registered—user where username=′%s′″,
username);
//以username查询表registered—user中的记录
if (msqlQuery(sock,buff)==-1)
{
//输出查询失败的错误信息
…
}
//将查询结果保存到m—result类型的指针变量 res
res=msqlStoreResult();
//得到查询结果的记录数
numrow=msqlNumRows(res);
if (numrow==1)
{
//得到当前记录,类型为:m_row
row=msqlFetchRow(res);
//将保存在表中的口令和用户输入的口令相比较
if (!strcmp(password_ur,row[2]))
{
//输出注册成功信息
} else
{
//输出口令不对的提示信息
}
} else
{
//输出用户名输入出错信息
}
}
//释放查询结果的指针
msqlFreeResult(res);
//关闭数据库系统的套接字
msqlClose(sock);
return;
}
以上的例子包含有将mSQL集成到C语言程序中用到的主要函数,这些函数基本
能满足应用程序的需要。如果采用w3—msql能解释的类C语言嵌入到html文件中,可
以达到同样的功能。与C语言编写的CGI程序需要编译不同,脚本语言不需要编译,
该脚本由mSQL数据库系统提供的CGI程序w3—msql来解释执行。脚本中主要的代码段
如下所示:
〈HTML〉
〈HEAD〉
〈META HTTP-EQUIV=″Content-Type″ CONTENT=″text/html;charset=iso-
8859-1″〉
〈/HEAD〉
〈body TEXT=″#000000″ BACKGROUND=″/icon/back.jpg″ topmargin=″10″〉
〈!
//解析用户提交上来的用户名和口令并
保存到变量username和password—usr中
…
//创建与本机的mSQL数据库系统的套接字
$sock = msqlConnect();
//选择数据库test
if (msqlSelectDB($sock,″test″)==-1)
{
//输出数据库选择失败信息
fatal(″错误 : 无法与数据库连接n″);
} else
{
$buff = ″ select from registered—user where username=′$username ′″;
//以username查询表registered—user中的记录
if (msqlQuery($sock,$buff)==-1)
{
//输出查询失败的错误信息
fatal(″查询错误n″);
}
//将查询出来的结果保存到查询结果的指针变量res中
$res=msqlStoreResult();
//得到查询结果的记录数目
$numrow=msqlNumRows($res);
if ($numrow==1)
{
//得到当前记录的指针
$row=msqlFetchRow($res);
//将保存在表中的口令和用户输入的口令相比较
if (!strcmp($password—ur,$row[2]))
{
//输出注册成功信息
echo(″〈center〉注册成功〈/center〉″);
} else
{
//输出口令不对的提示信息
echo(″〈center〉您输入的口令不正确〈/center〉″);
}
} else
{
//输出用户名输入出错信息
echo(″〈center〉您输入的用户名不正确〈/center〉″);
}
}
//释放查询结果占用的内存
msqlFreeResult($res);
//关闭数据库系统的套接字
msqlClose($sock);
〉
〈/BODY〉
〈/HTML〉
以上介绍了在Linux下以mSQL数据库系统作为后台数据库开发应用系统的方
法。有了这些基本的方法,我们就能开发出各种基于mSQL数据库的应用系统。
mSQL的安装相当简单,二进制版本(针对某一个硬件平台编译后的软件)的安装只
是将文件展开到用户某一目录下然后配置几个参数就可以。例如你下载的文件为:
mSQL-2.0.3.tar.gz,你想把mSQL安装到/usr/local目录下,这时,我们需要先将
这个文件拷贝到/usr/local这个目录,然后键入命令tar zxvf mSQL-
2.0.3.tar.gz,这个命令将展开该压缩文件。一般,mSQL数据库系统的所有文件都
安装到/usr/local/Hughes目录下。接着就是配置mSQL数据库。你所要做的工作就
是要修改/usr/local/Hughes目录下的文件msql.conf。
在实际应用中我们改动得最多的是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目录键入如下的命
令:./msql2d &,这样就启动了mSQL数据库系统。至于带源码的安装软件,看一
看README和INSTALL这些文件一般就能顺利安装完成。
为了将mSQL集成到用户的应用程序中去,mSQL数据库系统为用户提供了一个C
语言的API库和一个解释器:w3—msql,通过C语言的API库,你可以将mSQL集成到用
标准C语言开发的应用程序中去。而有了w3—msql这个工具,你可以通过编写类C语
言脚本语言将mSQL数据库嵌入到html文件中,下面举一程序实例进行说明。
下面的程序片段要完成的功能是将浏览器页面上提交上来的用户名和口令与表
registered—user中的用户名和口令相比较,如果用户名和口令正确,将在页面上
显示注册成功的信息,否则提示用户注册失败。采用C语言实现的方法如下所示:
void main(int argc, char argv[])
{
//解析用户提交上来的用户名和口令并保存到变量username和password—usr中
…
//创建与本机的mSQL数据库系统的套接字
sock=msqlConnect(NULL);
//选择数据库test
if (msqlSelectDB(sock,″test″)==-1)
{
//输出数据库选择失败信息
…
} else
{
sprintf(buff,″select from registered—user where username=′%s′″,
username);
//以username查询表registered—user中的记录
if (msqlQuery(sock,buff)==-1)
{
//输出查询失败的错误信息
…
}
//将查询结果保存到m—result类型的指针变量 res
res=msqlStoreResult();
//得到查询结果的记录数
numrow=msqlNumRows(res);
if (numrow==1)
{
//得到当前记录,类型为:m_row
row=msqlFetchRow(res);
//将保存在表中的口令和用户输入的口令相比较
if (!strcmp(password_ur,row[2]))
{
//输出注册成功信息
} else
{
//输出口令不对的提示信息
}
} else
{
//输出用户名输入出错信息
}
}
//释放查询结果的指针
msqlFreeResult(res);
//关闭数据库系统的套接字
msqlClose(sock);
return;
}
以上的例子包含有将mSQL集成到C语言程序中用到的主要函数,这些函数基本
能满足应用程序的需要。如果采用w3—msql能解释的类C语言嵌入到html文件中,可
以达到同样的功能。与C语言编写的CGI程序需要编译不同,脚本语言不需要编译,
该脚本由mSQL数据库系统提供的CGI程序w3—msql来解释执行。脚本中主要的代码段
如下所示:
〈HTML〉
〈HEAD〉
〈META HTTP-EQUIV=″Content-Type″ CONTENT=″text/html;charset=iso-
8859-1″〉
〈/HEAD〉
〈body TEXT=″#000000″ BACKGROUND=″/icon/back.jpg″ topmargin=″10″〉
〈!
//解析用户提交上来的用户名和口令并
保存到变量username和password—usr中
…
//创建与本机的mSQL数据库系统的套接字
$sock = msqlConnect();
//选择数据库test
if (msqlSelectDB($sock,″test″)==-1)
{
//输出数据库选择失败信息
fatal(″错误 : 无法与数据库连接n″);
} else
{
$buff = ″ select from registered—user where username=′$username ′″;
//以username查询表registered—user中的记录
if (msqlQuery($sock,$buff)==-1)
{
//输出查询失败的错误信息
fatal(″查询错误n″);
}
//将查询出来的结果保存到查询结果的指针变量res中
$res=msqlStoreResult();
//得到查询结果的记录数目
$numrow=msqlNumRows($res);
if ($numrow==1)
{
//得到当前记录的指针
$row=msqlFetchRow($res);
//将保存在表中的口令和用户输入的口令相比较
if (!strcmp($password—ur,$row[2]))
{
//输出注册成功信息
echo(″〈center〉注册成功〈/center〉″);
} else
{
//输出口令不对的提示信息
echo(″〈center〉您输入的口令不正确〈/center〉″);
}
} else
{
//输出用户名输入出错信息
echo(″〈center〉您输入的用户名不正确〈/center〉″);
}
}
//释放查询结果占用的内存
msqlFreeResult($res);
//关闭数据库系统的套接字
msqlClose($sock);
〉
〈/BODY〉
〈/HTML〉
以上介绍了在Linux下以mSQL数据库系统作为后台数据库开发应用系统的方
法。有了这些基本的方法,我们就能开发出各种基于mSQL数据库的应用系统。
相关文章推荐
- Manual | BSD手册| Linux手册 | 数据库手册 | 编程开发手册 | WEB开发手册 | 软件应用手册 | 网络技术手册 | GNU手册
- 几种VC++数据库开发技术的比较
- 张江地铁站OFFICE:最新职位:自动化测试、Linux_ QA Engineer、云计算技术开发、系统管理员、黑盒QA测试、多媒体QA测试
- DELPHI10.2的LINUX数据库开发环境配置
- 112、Oralce数据库开发(二).Linux下配置使用ProC
- Linux 基金会宣布开发区块链技术的新团队
- 数据库应用程序开发中图像数据的存取技术
- 【数据库开发】在Windows上和Linux上配置MySQL的过程
- Linux下C开发实用小技术、好代码总结 —— 银行项目
- u-boot 分析- [嵌入式Linux系统开发技术详解-基于ARM]2
- 程序开发工具(Java反编译及Linux等)与调试技巧(eclipse,linux)部分数据库插件
- 大家提提意见 2个小领导、4个开发人员、3种数据库、2种开发技术、3种技术架构、3个开发思想为3个项目服务
- 几种VC++数据库开发技术的比较
- linux下C开发中几点技术小总结
- 大家提提意见 2个小领导、4个开发人员、3种数据库、2种开发技术、3种技术架构、3个开发思想为3个项目服务
- Linux企业级开发技术(3)——epoll企业级开发之epoll模型
- MFC ODBC数据库开发技术(续)
- ADO数据库开发技术(续)
- Oracle 11gR2 64bit On Linux 安装指导手册—数据库技术(一)