搜档网
当前位置:搜档网 › MySQL

MySQL

MySQL
MySQL

MySQL数据库在在线监测系统中的应用研究

作者:毛成光张理兵郑王林钱继超

来源:《电子世界》2012年第04期

【摘要】MySQL数据库和PC104系统的应用都十分广泛,但是MySQL数据库在PC/104在线监测系统中应用方面的研究尚不多。本文中在线监测系统硬件平台采用PC/104,软件平台采用Windows2000操作系统,首先设计了一个MySQL的在线监测数据库,然后在

C++Build6.0开发环境下开发在线监测应用程序,模拟在线监测过程,每隔一段时间写一条数据库记录,同时在绘图曲线中实时更新,动态显示。

【关键词】在线监测系统;MySQL数据库;C++builder

1.引言

对于在线监测仪来说,通常都是长时间连续运行的,数据量一般都巨大,并且需要在过程控制中实时修改运行参数,如何管理数据文件,运行条件参数和相关信息等就显得尤为重要。这需要借助专门的数据库来才能有效的管理。

近20年来,数据库技术不断发展,至今已经有很多成熟的商品化的数据库管理系统(DBMS),例如:SQL Server、Oracle和Access等,它们的应用越来越广泛,但对用户来说还存在不足之处。(a)SQL Server:SQL验证的登陆只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难;对于每一个数据库,必须分别地为其设定管理权限;移植性较差,不能跨平台移植;价格也不便宜;(b)Oracle:价格昂贵,服务费用也比较高;对硬件要求也比较高,使得整体投入非常高;(c)Access:主要用于单机桌面小型数据库管理系统,属于Local DBMS,难以支持大型应用;速度比较慢,功能还不够完善。

目前,采用开源数据库已开始成为一种潮流,如许多小型、中型或大型网站数据库服务器都选择MySQL数据库。MySQL是一个精巧的SQL数据库管理系统,以操作简便著称。由于其强大的功能、丰富的应用程序接口及精巧的系统结构设计,在基于数据库的应用软件开发中得到了广泛的应用。MySQL具有下述优势;(a)是目前运行速度最快的SQL语言数据库;(b)多样的数据类型和超大的容量可以方便完整地保存反映设备状态的各种数据;(c)支持多平台,可以在不同的操作系统下进行数据的准确移植;(d)可以免费获得,可以有效降低成本。

本文中在线监测系统硬件平台采用PC/104,具体如下:PC/104嵌入式主板采用SBC-4571(北京集智达公司),其是嵌入式Vortex86 CPU模块,带4串口,2个USB,支持CRT/LCD/音频/网络,板载128MB DRAM内存,1个增强IDE接口,显示屏采用元太 6.4"LCD显示屏。

PC/104主板外加PC/104的I/O卡,就能方便的实现在线监测系统的控制中心。在线监测系统的软件平台为当前流行的Windows 2000操作系统上,采用MySQL数据库作为在线监测系统的数据库,应用软件在集成开发环境C++builder 6.0上开发。在此平台上研究在线设备的应用程序与MySQL数据库的连接、更新、插入,及数据库中关键字段的动态实时显示技术。本设计采用的MySQL版本为mysql-5.0.37-win32及其在windows下的驱动为mysql-connector-odbc-3.51.14-win32。下面从MySQL在线监测数据库的设计、C++ builder与MySQL数据库的ODBC连接,应用程序的设计三方面来论述。

2.MySQL在线监测数据库的设计

本设计是为了研究MySQL数据库在在线监测系统中应用的可行性,及关键技术的开发与研究。因此设计的onlinebase数据库就相对简单, 只包含一张反映在线设备运行结果的results 的表。表results包括关键字段“id”、反映在线监测指标值的int类型字段“value”、反映在线监测的实时条件的int类型字段“conditon” 和在线检测指标时的备注字段“remark” 等4各字段。创建数据库onlinebase、数据表results后,可以通过命令desc results来查看表的具体描述,如图1所示。

3.C++ builder与MySQL数据库的ODBC连接

C++builder不能直接访问MySQL数据库,但可以通过ODBC来实现。因为ODBC屏蔽了各种数据库的差异,安装了MySQL数据库的ODBC驱动程序后,就可以通过ODBC对MySQL数据库进行操作。

创建ODBC源实际上就是一个写操作系统注册表的过程,可以在应用程序中实现,但为了简单方便,还是通过在操作系统中“控制面板\性能和维护\管理工具\数据源(ODBC)中创建。选择添加用户DSN,然后选择MySQL ODBC 3.51 Driver的数据源驱动,点击完成,出现图2的对话框。

在图2所示对话框中,在“Data Source Name”编辑框中输入onlineodbc,设置了ODBC数据源的名;在“description”编辑框中输入对DSN的说明;数据在“server”编辑框中输入local,设置为本地服务器;然后设置User和Password,这里以root用户访问,并输入root用户的密码;最后选择onlinebase作为数据源的数据库。点击下面的“Test”按钮可以测试通过ODBC数据源连接所选数据库是否成功。最后点击“ok”按钮,返回ODBC源数据管理器,如图3所示,就可以发现新增加的onlineodbc数据源。

图1 创建results表,

并查看results表的结构

图 2 创建onlinebase数据库的ODBC源

数据库测试的分类和方法

数据库测试的分类和方法 数据库, 分类 从测试过程的角度来说我们也可以把数据库测试分为 系统测试 传统软件系统测试的测试重点是需求覆盖,而对于我们的数据库测试同样也需要对需求覆盖进行保证。那么数据库在初期设计中也需要对这个进行分析,测试.例 如存储过程,视图,触发器,约束,规则等我们都需要进行需求的验证确保这些功能设计是符合需求的.另一方面我们需要确认数据库设计文档和最终的数据库相 同,当设计文档变化时我们同样要验证改修改是否落实到数据库上。 这个阶段我们的测试主要通过数据库设计评审来实现。 集成测试 集成测试是主要针对接口进行的测试工作,从数据库的角度来说和普通测试稍微有些区别对于数据库测试来说,需要考虑的是 数据项的修改操作 数据项的增加操作 数据项的删除操作 数据表增加满 数据表删除空 删除空表中的记录 数据表的并发操作 针对存储过程的接口测试 结合业务逻辑做关联表的接口测试 同样我们需要对这些接口考虑采用等价类、边界值、错误猜测等方法进行测试单元测试 单元测试侧重于逻辑覆盖,相对对于复杂的代码来说,数据库开发的单元测试相对简单些,可以通过语句覆盖和走读的方式完成 系统测试相对来说比较困难,这要求有很高的数据库设计能力和丰富的数据库测

试经验。而集成测试和单元测试就相对简单了。 而我们也可以从测试关注点的角度对数据库进行分类 功能测试 对数据库功能的测试我们可以依赖与工具进行 DBunit 一款开源的数据库功能测试框架,可以使用类似与Junit的方式对数据库的基本操 作进行白盒的单元测试,对输入输出进行校验 QTP 大名鼎鼎的自动测试工具,通过对对象的捕捉识别,我们可以通过QTP来模拟用户 的操作流程,通过其中的校验方法或者结合数据库后台的监控对整个数据库中的数据进行测试。个人觉得比较偏向灰盒。 DataFactory 一款优秀的数据库数据自动生成工具,通过它你可以轻松的生成任意结构数据库,对数据库进行填充,帮助你生成所需要的大量数据从而验证我们数据库中的功能是否正确。这是属于黑盒测试 数据库性能 虽然我们的硬件最近几年进步很快,但是我们需要处理的数据以更快的速度在增加。几亿条记录的表格在现在是司空见惯的,如此庞大的数据量在大量并发连接操作时,我们不能像以前一样随意的使用查询,连接查询,嵌套查询,视图,这些操作如果不当会给系统带来非常巨大的压力,严重影响系统性能 性能优化分4部分 1物理存储方面 2逻辑设计方面 3数据库的参数调整 4SQL语句优化. 我们如何对性能方面进行测试呢,业界也提供了很多工具 通过数据库系统的SQL语句分析工具,我们可以分析得到数据库语句执行的瓶

MySQL权限表都有哪些

MySQL权限表都有哪些,分别控制MySQL哪些权限,有哪些注意事项? 1、user:记录账号、密码、全局性权限信息等,里面的权限是全局级的 1)*_priv:适用MySQL服务器全局性的权限,假设某个账号拥有Delete_priv的全局性权限,则表示它可以对任何表进行删除数据的操作,这非常危险,所有一般只有超级用户root有这样的权限,其它普通用户没有。 2)max_*:资源管理列,用于规定账号的资源使用上限,其中: max_questions:每小时发出的语句数上限 max_updates:每小时发出的修改类语句数上限 max_connections:每小时连接数上限 max_user_connections:允许保有的连接数上限 3)SSL相关列: ssl_type,ssl_cipher,x509_isuser, x509_subject 2、db:记录各个帐号在各个数据库上的操作权限 *_priv:适用于某个数据库的权限 3、tables_priv:表级别的权限 Column_priv比较奇怪,因为照理说tables_priv只显示表级别的权限,列级别的权限应该在columns_priv里显示才对。后来查了资料才知道,原来这是为了提高权限检查时的性能,试想一下,权限检查时,如果发现tables_priv.Column_priv为空,就不需要再检查columns_priv 表了,这种情况在现实中往往占大多数。 4、columns_priv:列级别的权限 5、procs_priv:存储过程和函数的权限 6、proxies_priv:记录代理用户的权限 7、host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVO语句的影响

使用SQL操作MySQL数据库

从本节开始正式介绍各种SQL语句。本节介绍有关数据库级的SQL以及相关操作,查看、建立和删除等操作。 用SHOW显示已有的数据库 句法:SHOW DATABASES [LIKE wild] 如果使用LIKE wild部分,wild字符串可以是一个使用SQL的“%”和“_”通配符的字符串。 功能:SHOW DATABASES列出在MySQL服务器主机上的数据库。 你可以尝试下面举例,观察输出结果,例如: mysql>show databases; +----------+ | Database | +----------+ | first | | mysql | | mytest | | test | | test1 | +----------+ mysql>show databases like ‘my%’; +----------------+ | Database (my%) | +----------------+ | mysql | | mytest | +----------------+

用mysqlshow程序也可以得到已有数据库列表。 用Create Dabase 创建数据库 句法:CREATE DATABASE db_name 功能:CREATE DATABASE用给定的名字创建一个数据库。 如果数据库已经存在,发生一个错误。 在MySQL中的数据库实现成包含对应数据库中表的文件的目录。因为数据库在初始创建时没有任何表,CREATE DATABASE语句只是在MySQL数据目录下面创建一个目录。 例如: mysql>create database myfirst; 然后利用show databases观察效果。 用DROP DATABASE删除数据库 句法:DROP DATABASE [IF EXISTS] db_name 功能:DROP DATABASE删除数据库中的所有表和数据库。要小心地使用这个命令! DROP DATABASE返回从数据库目录被删除的文件的数目。通常,这3倍于表的数量,因为每张表对应于一个“.MYD”文件、一个“.MYI”文件和一个“.frm”文件。 在MySQL 3.22或以后版本中,你可以使用关键词IF EXISTS阻止一个错误的发生,如果数据库不存在。 使用mysqladmin工具创建和删除 在命令行环境下可以使用mysqladmin创建和删除数据库。 创建数据库: shell> mysqladmin create db_name 删除数据库: shell> mysqladmin drop db_name 如果出现下面的错误:

数据库安全性习题解答和解析

第九章数据库安全性习题解答和解析 1. 1.什么是数据库的安全性? 答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 2. 2.数据库安全性和计算机系统的安全性有什么关系? 答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。 系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。 3.试述可信计算机系统评测标准的情况,试述TDI/TCSEC标准的基本内容。 答:各个国家在计算机安全技术方面都建立了一套可信标准。目前各国引用或制定的一系列安全标准中,最重要的是美国国防部(DoD)正式颁布的《DoD可信计算机系统评估标准》(Trusted Computer System Evaluation Criteria,简称 TCSEC,又称桔皮书)。(详细介绍参见《概论》9.1.2)。 TDI/TCSEC标准是将TCSEC扩展到数据库管理系统,即《可信计算机系统评估标准关于可信数据库系统的解释》(Trusted Database Interpretation 简称TDI, 又称紫皮书)。在TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。 TDI与TCSEC一样,从安全策略、责任、保证和文档四个方面来描述安全性级别划分的指标。每个方面又细分为若干项。这些指标的具体内容,参见《概论》9.1.2。 4.试述TCSEC(TDI)将系统安全级别划分为4组7个等级的基本内容。 答:根据计算机系统对安全性各项指标的支持情况,TCSEC(TDI)将系统划分为四组(division)7个等级,依次是D、C(C1,C2)、B(B1,B2,B3)、A(A1),按系统可靠或可信程度逐渐增高。 这些安全级别之间具有一种偏序向下兼容的关系,即较高安全性级别提供的安全保护包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。各个等级的基本内容为:D级 D级是最低级别。一切不符合更高标准的系统,统统归于D组。 C1级只提供了非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主

MYSQL数据库系统安全管理

.. .w 目录 正文 (1) 1研究的背景 (2) 2研究的目的和意义 (2) 3研究的容 (2) 3.1 MySQL数据库的安全配置 (2) 3.1.1系统部安全 (2) 3.1.2外部网络安全 (6) 3.2 MySQL用户管理 (10) 3.3 MD5加密 (14) 3.3.1 数据库中数据加密的原因 (14) 3.3.2 加密方式 (15) 3.3.3 Md5加密原理 (15) 3.3.4 具体算法 (17) 4总结 (18) 参考文献: (18) 附录: (19)

MySQL数据库安全管理 摘要:MySQL是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统。它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL数据库的程序,特别是与PHP更是黄金组合,运用十分广泛。由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以在用户自己的使用环境下应该进行安全加固。用户有责任维护MySQL数据库系统的数据安全性和完整性。 关键词:MYSQL;数据库;数据库安全;访问控制;MD5加密 正文 MySQL数据库的安全配置必须从两个方面入手,系统部安全和外部网络安全;MySQL用户管理主要用grant(授权)和revoke(撤权)两个SQL指令来管理;MD5在实际中的一个应用就是对数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这

些信息被泄露,也不能立即理解这些信息的真正含义。有效的提高了前台和后台的数据安全性。 1研究的背景 随着计算机技术和信息技术的迅速发展。数据库的应用十分广泛,深入到各个领域,但随之而来产生了数据的安全问题。 近年来,数据库供应商竞相为大众提供功能丰富的数据库环境,大多数主要系统都支持XML、Web服务、分布式复制、操作系统集成以及其他一些有用的功能。与以前相比,数据库更加容易遭受到攻击,它已经成为了更有价值的攻击目标,所以需要配置更多的安全功能,管理也要更加的谨慎。 2 研究的目的和意义 本文对MySQL数据库的安全配置、MySQL用户管理以及使用MD5加密提高数据库前台和后台数据安全性做了详细研究。 由于MySQL是多平台的数据库,它的默认配置要考虑各种情况下都能适用,所以用户需要根据具体的环境进行相关的安全配置,通过本文的研究,对如何提高数据库的安全性有很大的帮助。 3研究的容 3.1 MySQL数据库的安全配置 3.1.1系统部安全 MySQL安装好,运行了mysql_db_install脚本以后就会建立数据目录和初始化数据库。如果我们用MySQL源码包安装,而且安装目录是/usr/local/mysql,那么数据目录一般会是/usr/local/mysql/var。数据库系统由一系列数据库组成,每个数据库包含一系列数据库表。MySQL是用数据库名在数据目录建立建立一个数据库目录,各

MYSQL数据库基本操作命令

MYSQL数据库基本操作命令 用户名和密码:123456 创建一个名称为mydb1的数据库。 create database mydb1; 查看所有数据库 show databases; 创建一个使用utf-8字符集的mydb2数据库。 create database mydb2 character set utf8; 创建一个使用utf-8字符集,并带校对规则的mydb3数据库。 create database mydb3 character set utf8 collate utf8_general_ci; 显示库的创建信息 show create database mydb3; 删除前面创建的mydb1数据库 drop database mydb1; 查看服务器中的数据库,并把其中某一个库的字符集修改为gb2312; alter database mydb2 character set gb2312; show create database mydb2; 备份库 1、准备库的数据 create database mydb1; use mydb1; create table test ( id int ); insert into test(id) values(1); select * from test; 2、删除库:drop database mydb1; 3、 4.1 创建库:create database mydb1; 4.2 \. test.sql (通过执行脚本文件实现) 5、

创建一个员工表 use mydb1; 进入库 create table employee ( id int, name varchar(20), gender varchar(4), birthday date, entry_date date, job varchar(40), salary double, resume text )character set utf8 collate utf8_general_ci; 查看库中所有表 show tables; 查看表的创建细节 show create table employee; 查看表的结构 desc employee; 在上面员工表的基本上增加一个image列。 alter table employee add image blob; 修改job列,使其长度为60。 alter table employee modify job varchar(60); 删除sex列。 alter table employee drop gender; 表名改为user。 rename table employee to user; 修改表的字符集 alter table user character set gb2312; show create table user; 列名name修改为username alter table user change column name username varchar(20); 使用insert语句向表中插入一个员工的信息。 insert into employee(id,username,birthday,entry_date,job,salary,resume)

数据库安全设计与分析

井冈山大学 《网络安全课程设计报告》 选题名称数据库的安全与分析 学院电子与信息工程 专业网络工程 班级网络工程13本(1) 姓名何依 学号130913029 日期2016.10.08

目录 一、背景与目的 (3) 二、实施方案概要 (3) 1、用户权限 (3) 2、访问权限 (3) 3、再次校对 (4) 4、登录 (4) 三、技术与理论 (4) 1、三层式数据访问机制 (4) 2、数据加密处理机制 (4) 3、数据库系统的安全策略: (5) 四、课程设计实施 (6) 1、第一步 (6) 2、第二步 (8) 3、第三步 (9) 4、第四步 (10) 5、第五步 (11) 五、课程设计结果分析 (11) 六、总结 (12)

一、背景与目的 无论是从十大酒店泄露大量开房信息,到工商银行的快捷支付漏洞导致用户存款消失,这一种种触目惊心的事件表明数据库的安全性能对于整个社会来说是十分重要的,数据库安全是对顾客的权益的安全保障,也是国家、企业以及更多的人的安全保障,从而数据库的安全性非常值得重视。 对于数据库的安全我将进行以下分析,旨在了解更多的数据库安全技术和对常见的数据库攻击的一些防范措施,并借鉴到今后的实际开发项目中去,更好的保护客户的权益。 二、实施方案概要 本次的数据库主要基于我们比较熟悉的SQLSever进行。 为了保障用户的数据的存储安全,保障数据的访问安全,我们应该对拘束看的用户采取监控的机制,分布式的处理各种应用类型的数据即采取三层式数据库连接的机制。 1、用户权限 当一个数据库被建立后,它将被指定给一个所有者,即运行建立数据库语句的用户。通常,只有所有者(或者超级用户)才能对该数据库中的对象进行任何操作,为了能让其它用户使用该数据库,需要进行权限设置。应用程序不能使用所有者或者超级用户的账号来连接到数据库,因为这些用户可以执行任何查询,例如,修改数据结构(如删除表格)或者删除所有的内容,一旦发生黑客事件数据库的安全将会岌岌可危。 2、访问权限 可以为应用程序不同的部分建立不同的数据库账号,使得它们职能对数据库对象行使非常有限的权限。对这些账号应该只赋予最需要的权限,同时应该防止相同的用户能够在不同的使用情况与数据库进行交流。这也就是说,如果某一个入侵者利用这些账号中的某一个获得了访问数据库的权限,他们也仅仅能够影响

MySQL数据库管理之权限管理

MYSQL数据库管理之权限管理 小编做客服有一阵子了,总是有人在QQ群或者论坛上问关于mysql权限的问题,今天就总结一下关于MYSQL数据库的权限管理的经验。希望大家看完有所收获啦~ 一、MYSQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你权利以内的事情,不可以越界。比如只允许你执行select操作,那么你就不能执行update操作。只允许你从某台机器上连接mysql,那么你就不能从除那台机器以外的其他机器连接mysql。 那么MYSQL的权限是如何实现的呢?这就要说到mysql的两阶段的验证,下面详细来介绍: 第一阶段:服务器首先会检查你是否允许连接。因为创建用户的时候会加上主机限制,可以限制成本地、某个IP、某个IP段、以及任何地方等,只允许你从配置的指定地方登录。后面在实战的时候会详细说关于主机的限制。 第二阶段:如果你能连接,MYSQL会检查你发出的每个请求,看你是否有足够的权限实施它。比如你要更新某个表、或者查询某个表,MYSQL会检查你对哪个表或者某个列是否有权限。再比如,你要运行某个存储过程,MYSQL会检查你对存储过程是否有执行权限等。 MYSQL到底都有哪些权限呢?从官网复制一个表来看看: 权限权限级别权限说明 CREATE数据库、表或索引创建数据库、表或索引权限DROP数据库或表删除数据库或表权限 GRANT OPTION数据库、表或保存的程序赋予权限选项 REFERENCES数据库或表 ALTER表更改表,比如添加字段、索引等DELETE表删除数据权限 INDEX表索引权限 INSERT表插入权限 SELECT表查询权限 UPDATE表更新权限 CREATE VIEW视图创建视图权限 SHOW VIEW视图查看视图权限 ALTER ROUTINE存储过程更改存储过程权限 CREATE ROUTINE存储过程创建存储过程权限 EXECUTE存储过程执行存储过程权限

数据库(SQL)操作命令大全

下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ?%value1%? ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count * as totalcount from table1 求和:select sum(field1) as sumvalue from table1

MySQL

MySQL数据库在在线监测系统中的应用研究 作者:毛成光张理兵郑王林钱继超 来源:《电子世界》2012年第04期 【摘要】MySQL数据库和PC104系统的应用都十分广泛,但是MySQL数据库在PC/104在线监测系统中应用方面的研究尚不多。本文中在线监测系统硬件平台采用PC/104,软件平台采用Windows2000操作系统,首先设计了一个MySQL的在线监测数据库,然后在 C++Build6.0开发环境下开发在线监测应用程序,模拟在线监测过程,每隔一段时间写一条数据库记录,同时在绘图曲线中实时更新,动态显示。 【关键词】在线监测系统;MySQL数据库;C++builder 1.引言 对于在线监测仪来说,通常都是长时间连续运行的,数据量一般都巨大,并且需要在过程控制中实时修改运行参数,如何管理数据文件,运行条件参数和相关信息等就显得尤为重要。这需要借助专门的数据库来才能有效的管理。 近20年来,数据库技术不断发展,至今已经有很多成熟的商品化的数据库管理系统(DBMS),例如:SQL Server、Oracle和Access等,它们的应用越来越广泛,但对用户来说还存在不足之处。(a)SQL Server:SQL验证的登陆只对特定的服务器有效,也就是说,在一个多服务器的环境中管理比较困难;对于每一个数据库,必须分别地为其设定管理权限;移植性较差,不能跨平台移植;价格也不便宜;(b)Oracle:价格昂贵,服务费用也比较高;对硬件要求也比较高,使得整体投入非常高;(c)Access:主要用于单机桌面小型数据库管理系统,属于Local DBMS,难以支持大型应用;速度比较慢,功能还不够完善。 目前,采用开源数据库已开始成为一种潮流,如许多小型、中型或大型网站数据库服务器都选择MySQL数据库。MySQL是一个精巧的SQL数据库管理系统,以操作简便著称。由于其强大的功能、丰富的应用程序接口及精巧的系统结构设计,在基于数据库的应用软件开发中得到了广泛的应用。MySQL具有下述优势;(a)是目前运行速度最快的SQL语言数据库;(b)多样的数据类型和超大的容量可以方便完整地保存反映设备状态的各种数据;(c)支持多平台,可以在不同的操作系统下进行数据的准确移植;(d)可以免费获得,可以有效降低成本。 本文中在线监测系统硬件平台采用PC/104,具体如下:PC/104嵌入式主板采用SBC-4571(北京集智达公司),其是嵌入式Vortex86 CPU模块,带4串口,2个USB,支持CRT/LCD/音频/网络,板载128MB DRAM内存,1个增强IDE接口,显示屏采用元太 6.4"LCD显示屏。

数据库性能测试报告-1.0.0

数据库性能测试报告 目录 1.前言 (4) 2.测试方法概述 (4) 2.1.测试环境 (4) 2.1.1.硬件环境 (4) 2.1.2.软件环境 (5) 2.2.测试工具 (5) 2.2.1.Tpch介绍 (5) 2.2.2.Jmeter介绍 (7) 2.2.3.Nmon介绍 (7) 2.3.测试方法 (7) 3.测试过程 (8) 3.1.测试数据库搭建 (8) 3.2.测试脚本准备 (8) 3.2.1.DDL脚本 (8) 3.2.2.平面数据文件 (8) 3.2.3.查询sql语句 (8) 3.3.测试数据规模 (26) 3.4.测试工具开发 (26) 3.4.1.插入数据功能 (26)

3.5.测试步骤 (27) 4.测试结果 (28) 4.1.数据量级—1GB (28) 4.1.1.装载时间对比 (29) 4.1.2.串行时间对比 (29) 4.1.3.并行时间对比 (30) https://www.sodocs.net/doc/0517140016.html,bright资源消耗情况 (30) 4.1.5.PostgreSQL资源消耗情况 (31) 4.2.数据量级—10GB (33) 4.2.1.装载时间对比 (34) 4.2.2.串行时间对比 (35) 4.2.3.并行时间对比 (35) https://www.sodocs.net/doc/0517140016.html,bright资源消耗情况 (36) 4.2.5.PostgreSQL资源消耗情况 (38) 4.3.数据量级—30GB (41) 4.3.1.装载时间对比 (42) 4.3.2.串行时间对比 (42) 4.3.3.并行时间对比 (43) https://www.sodocs.net/doc/0517140016.html,bright资源消耗情况 (43) 4.3.5.PostgreSQL资源消耗情况 (46) 4.4.数据量级—100GB (48)

(安全生产)数据库的安全性与完整性

数据库的安全性和完整性 一、实验目的和要求 1、理解数据库安全性和完整性的概念。 2、掌握SQL Server2000中有关用户、角色及操作权限管理等安全性技术。 3、掌握SQL Server2000中有关约束、规则、默认值的使用等完整性技术。 二、实验内容和步骤 ㈠数据库的安全性 1、SQL Server的安全模式 认证是指来确定登陆SQL SERVER的用户的登陆账号和密码是否正确,以此来验证其是否具有连接SQL SERVER的权限,但是通过认证阶段并不代表能够访问数据,用户只有在获取访问数据库的权限之后才能对服务器上的数据库进行权限许可下的各种操作。 ⑴设置SQL Server的安全认证模式:使用企业管理器来设置,步骤如下: Step1: 展开服务器组,右击需要设置的SQL服务器,在弹出菜单中选择“属性”。 Step2: 在弹出的SQL服务器属性对话框中,选择“安全性”选项卡。 Step3: 选择仅Windows选项(NT/2000验证模式) 或SQL Server和Windows选项(混合模式)。 注:设置改变后,用户必须停止并重新启动SQL Server服务,设置才生效。 如果设置成NT认证模式,则用户在登录时输入一个具体的登陆名时,SQL SERVER将忽略该登录名。 ⑵添加SQL Server账号:若用户没有Windows NT/2000账号,则只能为他建立SQL Server账号。 ①利用企业管理器 Step1: 展开服务器,选择安全性/登录。 Step2: 右击登录文件夹,出现弹出式菜单。 Step3: 在弹出式菜单中选择“新建登录”选项后,就会出现一个登录属性对话框。 step4: 在名称框中输入一个不带反斜杠的用户名,选中SQL Server身份验证单选按钮,并在密码框中输入口令(如下图所示)。

mysql系统特性

Mysql系统特性 1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多线程,充分利用CPU资源 5.优化的SQL查询算法,有效地提高查询速度 6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。 7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 9.提供用于管理、检查、优化数据库操作的管理工具。 10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 11.支持多种存储引擎。

MyISAMMysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务 InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定BDB源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT 和ROLLBACK等其他事务特性 Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql 重新启动时丢失 Merge将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用 Archive非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,但其对查询的支持相对较差Federated将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用 Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用CSV:逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。 BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继

mysql命令语句大全

show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 显示具体的表结构 select 中加上distinct去除重复字段 mysqladmin drop databasename 删除数据库前,有提示。 显示当前mysql版本和当前日期 select version(),current_date; 修改mysql中root的密码: shell>mysql -h localhost -u root -p //登录 mysql> update user set password=password("xueok654123") where user='root'; mysql> flush privileges //刷新数据库 mysql>use dbname; 打开数据库: mysql>show databases; 显示所有数据库 mysql>show tables; 显示数据库mysql中所有的表:先use mysql;然后 mysql>describe user; 显示表mysql数据库中user表的列信息); grant 创建用户firstdb(密码firstdb)和数据库,并赋予权限于firstdb数据库 mysql> create database firstdb; mysql> grant all on firstdb.* to firstdb identified by 'firstdb' 会自动创建用户firstdb mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP 地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。 mysql>grant all on *.* to root@202.116.39.2 identified by "123456"; 说明:grant 与on 之间是各种权限,例如:insert,select,update等 on 之后是数据库名和表名,第一个*表示所有的数据库,第二个*表示所有的表 root可以改成你的用户名,@后可以跟域名或IP地址,identified by 后面的是登录用的密码,可以省略,即缺省密码或者叫空密码。 drop database firstdb; 创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个 mysql> grant all privileges on *.* to user@localhost identified by 'something' with 增加新用户 格式:grant select on 数据库.* to 用户名@登录主机identified by "密码"

数据安全设计处理方案

数据安全处理设计方案 一、说明: 为保证税务数据的存储安全,保障数据的访问安全,对数据库的用户采取监控机制,分布式处理各种应用类型的数据,特采取三层式数据库连接机制。 二、作用机理: 1、对于整个系统而言,均采用统一的用户名称、用户密码进行登陆。这个阶 段的登陆主要用于获取数据库的对应访问用户、密码及其对应访问权限。 2、登陆成功后,读取用户本地机的注册信息、密码校验信息,然后到通用用 户对应的数据表中去读取对应的记录。该记录主要为新的用户名和密码。 3、获取对应权限、用户和密码后,断开数据库连接,然后按新的数据库用户 和密码进行连接。 4、连接成功后,开始个人用户的登陆。 三、核心内容: 该安全方案的核心内容为:三层式数据访问机制、数据加密处理机制。 三层式数据访问机制的内容: 第一层:通用用户方式登陆。对于通用用户而言,所有用户均只有一个表的访问权限,并且对该表只能读取和修改。 第二层:本地注册(或安装)信息的读取和专用数据库用户密码的对应获取。 根据安装类型,获取对应的(数据库)用户和密码,此用户一般有多个表的操作权限。 第三层:断开通用连接,以新的用户和密码进行登陆。登陆成功后,再用个人用户帐号和密码进行登陆处理。 数据加密处理机制主要对数据库的访问密码和个人密码进行加密处理。采用当前较为流行的基数数据加密机制,主要方式为:采用数据基数数组方式进行加密与解密。变动加解密机制时,只需修改对应的基数位置或基数值即可。实现方式简单方便,而解密则极为困难。 四、数据库设计: 系统主要涉及到的数据库为用户登陆数据库表。这张表与数据库的使用用户表数据内容类似,主要保存类用户信息。

成绩管理系统java+mySQL

《Java语言》课程期末作业 题目第9题:学生成绩管理系统学院计算机学院 专业 班别 学号 姓名温景钊 2013年6月10日

一、课程题目 设计一个简易的学生成绩管理系统。用于记录学生的各科成绩,以及实现常用的统计功能。 (1) 记录学生的基本信息,如姓名、学号、专业、班级等 (2) 记录各科成绩 (3) 实现常用的统计功能,如:单科成绩排名、总分排名、统计成绩高于/低于某一临界值的学生、统计单科/总分平均值…… (4) 使用图形方式显示某些数据,如直方图显示各分数段的人数、绘制各科分数分布曲线……(可选) (5) 必须使用数据库。 其它功能可自行扩展。 二、题目分析与设计 1.注明所使用的开发环境(Eclipse、NetBeans,JBuilder)。 开发环境:Eclipse 2.论述题目的需求。给出软件功能架构图。 题目需求:通过数据库记录学生成绩和信息,并通过数据库读取这些信 息,实现单个学生查找、全体学生查找等功能和单科排名、平均分、总 分排名、平均分等功能。其他扩展功能:登录界面,保存到txt文件。 软件功能架构图: 其中,删除、修改、单个查找功能均通过学号定位学生

3.论述界面设计过程,指出其设计上的创意及组件的布局策略。 界面设计过程: 主要界面包括登录界面,主功能界面,各个子功能界面。登录界面包括3个面板,每个面板放入相应的标签、文本框、按钮等组件,登录界面采用3行1列的网格布局;主功能界面包括菜单栏和若干面板,面板中放入标签或若干按钮,菜单栏的菜单项与按钮相对应,主功能界面采用7行1列的网格布局;学生管理类子功能(增加学生、删除学生、修改学生、单个查找)界面采用6行2列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。所有错误信息等信

达梦数据库性能测试软件操作

(1)创建用户benchmarksql/123456789,并开通权限。 (2)./runSQL.sh props.dm sqlTableCreates (3)./runLoader.sh props.dm numWAREHOUSES 10 (4)disql执行sqlSequenceCreate.sql,在数据库管理工具中执行。 (5)./runBenchmark.sh props.dm 备注:编辑props.dm, driver=dm.jdbc.driver.DmDriver conn=jdbc:dm://localhost:5236 user=benchmarksql password=123456789 warehouses=100 terminals=20 //To run specified transactions per terminal- runMins must equal zero runTxnsPerTerminal=0 //To run for specified minutes- runTxnsPerTerminal must equal zero runMins=60 //Number of total transactions per minute limitTxnsPerMin=0 //The following five values must add up to 100 //The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec newOrderWeight=45 paymentWeight=43 orderStatusWeight=4 deliveryWeight=4 stockLevelWeight=4 warehouses 是仓库建立库,增加内容,服务器一般可以建立100个。 Terminals是终端并发数量,服务器一般是建立20个。 Runmins是运行时间,服务器一般设置2小时。 Measured tpmc是测量每分钟tpmc即tpcc每分钟的吞吐量。按有效tpcc配置期间每分钟处理的平均交易次数测量。单位是tpmc,每分钟系统处理的新订单个数。

以普通权限运行MySQL的操作说明

以普通权限运行MySQL的操作说明 特别说明: 此模式为手动设置 mysql 的运行权限,操作步骤比较多,且比较复杂。请先在做测试,然后再在服务器里进行操作。 后续我们会发布一个“mysql权限设置.exe ”的程序,帮助您“一键设置”Mysql的运行权限,敬请关注我们的官方网站 本文介绍的是 mysql 设置方法。其他程序的降权运行,比如 ms sql 2000 和Serv-U 的方法,我们会在后面发布。 1、打开服务器里任务管理器,看看当前MySQL用户运行时权限 如果是 system 用户在运行 MySQL ,这个是非常危险的,一旦Mysql 出现漏洞,或被其他模式提权,直接就是 system 权限。

2、对 MySQL进行降权,用普通权限运行 假设 (1)mysql安装在 d:\mysql 目录 (2)运行时用户名为 mysqluser 3、建立一个新用户,假设为“mysqluser” 填写用户名,

选择“用户不能更改密码”和“密码永不过期”,其他2个√取消掉 找到刚才建立的用户,点鼠标右键属性,修改用户的属性

新建立用户后,会默认加到 users 组件,把这里组删除,不加入任何组。

把组清除,不加入任何组,点确定。 4、假设 MySQL数据库安装在 d:\mysql ,对此目录进行 NTFS 权限设置(1)Administrators 完全控制 (2)System 完全控制 (3)MysqlUser 完全控制 如果有其他权限,把其他权限都删除,操作步骤如下 修改 d:\mysql 的 NTFS 权限

此时权限可能是继续的,可能无法删除,点“高级”

相关主题