搜档网
当前位置:搜档网 › mysql各种问题

mysql各种问题

mysql各种问题
mysql各种问题

一、mysqld 已死,但是subsys 被锁

(1)Mysql常出现这个问题,首先可能是版本太低,功能不稳定或者网络不好等原因,因为我遇到过,连续重启了几次就正常了,以下这种情况:

[[root@localhost /]# service mysqld restart

停止MySQL:[ 确定 ]

启动MySQL:[ 确定 ]

[root@localhost /]# service mysqld status

mysqld 已死,但是subsys 被锁

[root@localhost /]# service mysqld restart

停止MySQL:[失败]

启动MySQL:[ 确定 ]

[root@localhost /]# service mysqld restart

停止MySQL:[ 确定 ]

启动MySQL:[ 确定 ]

[root@localhost /]# service mysqld status

mysqld (pid 5885) 正在运行...

(2)当mysql部署在linux系统上,安装目录下、etc/https://www.sodocs.net/doc/745539095.html,f文件配置出现错误,也可能会报这个错,建议检查一下这个文件配置是否正确。

二、使用mysql时,创建之后经常会遇到table ...doesn't exist.

如果确认数据库表已创建好,那么可能就是大小写敏感造成的,

linux系统下的https://www.sodocs.net/doc/745539095.html,f文件下

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

...

(1)默认的是lower_case_table_names=0,此时是表名大小写敏感,即sql语句引用的

表名要和mysql数据库表名大小写完全一致。否则就会报错找不到table。

(2)设置lower_case_table_names=1,此时是表名大小写不敏感,即忽略大小写。

但是注意:这种忽略大小写是指编译sql语句时自动把sql语句全部转换成小写后才执行,

所以这就要求在建表的时候表名用全部小写字母,这样才能确保生气了语句执行的时候

能找到表。为避免这种情况,可以先设置为1,然后再建表,不管建表语句时大写还是小

写,执行时都会转换成小写;

(3)lower_case_table_names=2,本人暂时没有用到。

查询lower_case_table_names的值

可以用show variables like 'lower%';

参数说明如下:

三、今天部署一个项目:linux环境下创建mysql数据库,创建数据库,插入数据后中文显示乱码,

全部都是问号,部分还带有数字,如:??????2?3

通过网上提供的方法:

需要修改/etc/https://www.sodocs.net/doc/745539095.html,f,在

[mysqld]下加入character-set-server=utf8 而不是default-character-set = utf8,

[client]下加入default-character-set = utf8

然后客户端连接数据库,中文显示正常,

而secureCRT是中文乱码,如这样:偲潪散琺偆?湳潬攍,

然后继续解决,通过命令:show variables like 'character_set%'

其中character_set_results的值是utf8,因为linux下默认的编码是gb2312,所以这里需要修改

set character_set_results =gb2312;

然后重启数据库,就能正常显示中文内容了。

启动/停止命令

四、用户变量

可以先在用户变量中保存值然后在以后引用它;这样可以将值从一个语句传递到另一个语句。用户变量与连接有关。也就是说,一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。

用户变量的形式为@var_name,其中变量名var_name可以由当前字符集的文字数字字符、….?、…_?和…$?组成。默认字符集是cp1252 (Latin1)。可以用mysqld的--default-character-set 选项更改字符集。参见5.10.1节,“数据和排序用字符集”。用户变量名对大小写不敏感。

设置用户变量的一个途径是执行SET语句:

SET @var_name = expr [, @var_name = expr] ...

对于SET,可以使用=或:=作为分配符。分配给每个变量的expr可以为整数、实数、字符串或者NULL值。

也可以用语句代替SET来为用户变量分配一个值。在这种情况下,分配符必须为:=而不能用=,因为在非SET语句中=被视为一个比较操作符:

mysql> SET @t1=0, @t2=0, @t3=0;

mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;

+----------------------+------+------+------+

| @t1:=(@t2:=1)+@t3:=4 | @t1 | @t2 | @t3 |

+----------------------+------+------+------+

| 5 | 5 | 1 | 4 |

+----------------------+------+------+------+

用户变量可以用于表达式中。目前不包括明显需要文字值的上下文中,例如SELECT语句的LIMIT子句,或者LOAD DATA语句的IGNORE number LINES子句。

如果使用没有初始化的变量,其值是NULL。

如果用户变量分配了一个字符串值,其字符集和校对规则与该字符串的相同。用户变量的可压缩性(coercibility)是隐含的。(即为表列值的相同的可压缩性(coercibility)。

注释:在SELECT语句中,表达式发送到客户端后才进行计算。这说明在HAVING、GROUP BY或者ORDER BY子句中,不能使用包含SELECT列表中所设的变量的表达式。例如,下面的语句不能按期望工作:

mysql> SELECT (@aa:=id) AS a,(@aa+3) AS b 从tbl_name HAVING b=5;

HAVING子句中引用了SELECT列表中的表达式的别名,使用@aa。不能按期望工作:@aa不包含当前行的值,而是前面所选的行的id值。

一般原则是不要在语句的一个部分为用户变量分配一个值而在同一语句的其它部分使用该变量。可能会得到期望的结果,但不能保证。

设置变量并在同一语句中使用它的另一个问题是变量的默认结果的类型取决于语句前面的变量类型。下面的例子说明了该点:

mysql> SET @a='test';

mysql> SELECT @a,(@a:=20) FROM tbl_name;

对于该 SELECT语句,MySQL向客户端报告第1列是一个字符串,并且将@a的所有访问转换为字符串,即使@a在第2行中设置为一个数字。执行完SELECT语句后,@a被视为下一语句的一个数字。

要想避免这种问题,要么不在同一个语句中设置并使用相同的变量,要么在使用前将变量设置为0、0.0或者''以定义其类型。

未分配的变量有一个值NULL,类型为字符串。

五、系统变量

MySQL可以访问许多系统和连接变量。当服务器运行时许多变量可以动态更改。这样通常允许你修改服务器操作而不需要停止并重启服务器。

mysqld服务器维护两种变量。全局变量影响服务器整体操作。会话变量影响具体客户端连接的操作。

当服务器启动时,它将所有全局变量初始化为默认值。这些默认值可以在选项文件中或在命令行中指定的选项进行更改。服务器启动后,通过连接服务器并执行SET

GLOBAL var_name语句,可以动态更改这些全局变量。要想更改全局变量,必须具有SUPER权限。

服务器还为每个连接的客户端维护一系列会话变量。在连接时使用相应全局变量的当前值对客户端的会话变量进行初始化。对于动态会话变量,客户端可以通过SET

SESSION var_name语句更改它们。设置会话变量不需要特殊权限,但客户端只能更改自己的会话变量,而不能更改其它客户端的会话变量。

对于全局变量的更改可以被访问该全局变量的任何客户端看见。然而,它只影响更改后连接的客户的从该全局变量初始化的相应会话变量。不影响目前已经连接的客户端的会话变量(即使客户端执行SET GLOBAL语句也不影响)。

可以使用几种语法形式来设置或检索全局或会话变量。下面的例子使用了

sort_buffer_sizeas作为示例变量名。

要想设置一个GLOBAL变量的值,使用下面的语法:

mysql> SET GLOBAL sort_buffer_size=value;

mysql> SET @@global.sort_buffer_size=value;

要想设置一个SESSION变量的值,使用下面的语法:

mysql> SET SESSION sort_buffer_size=value;

mysql> SET @@session.sort_buffer_size=value;

mysql> SET sort_buffer_size=value;

LOCAL是SESSION的同义词。

如果设置变量时不指定GLOBAL、SESSION或者LOCAL,默认使用SESSION。参见13.5.3节,“SET语法”。

要想检索一个GLOBAL变量的值,使用下面的语法:

mysql> SELECT @@global.sort_buffer_size;

mysql> SHOW GLOBAL VARIABLES like 'sort_buffer_size';

要想检索一个SESSION变量的值,使用下面的语法:

mysql> SELECT @@sort_buffer_size;

mysql> SELECT @@session.sort_buffer_size;

mysql> SHOW SESSION VARIABLES like 'sort_buffer_size';

这里,LOCAL也是SESSION的同义词。

当你用SELECT @@var_name搜索一个变量时(也就是说,不指定global.、session.或者local.),MySQL返回SESSION值(如果存在),否则返回GLOBAL值。

对于SHOW VARIABLES,如果不指定GLOBAL、SESSION或者LOCAL,MySQL返回SESSION值。

当设置GLOBAL变量需要GLOBAL关键字但检索时不需要它们的原因是防止将来出现问题。如果我们移除一个与某个GLOBAL变量具有相同名字的SESSION变量,具有SUPER 权限的客户可能会意外地更改GLOBAL变量而不是它自己的连接的SESSION变量。如果我们添加一个与某个GLOBAL变量具有相同名字的SESSION变量,想更改GLOBAL变量的客户可能会发现只有自己的SESSION变量被更改了。

使用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 如果出现下面的错误:

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是用数据库名在数据目录建立建立一个数据库目录,各

三大主流数据库对比 哪个更有优势

三大主流数据库对比哪个更有优势 Oracle Oracle 能在所有主流平台上运行(包括Windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持,Oracle并行服务器通过使一组结点共享同一簇中的工作来扩展Windows NT的能力,提供高可用性和高伸缩性的簇的解决方案。如果Windows NT不能满足需要,用户可以把数据库移到UNIX中。Oracle 的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。Oracle获得最高认证级别的ISO标准认证.Oracle性能最高,保持开放平台下的TPC-D和TPC-C的世界记录Oracle多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。 Oracle 在兼容性、可移植性、可联结性、高生产率上、开放性也存在优点。Oracle产品采用标准SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS,DB2,INGRES,IDMS/R等兼容。Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、WINDOWS等多种操作系统下工作。能与多种通讯网络相连,支持各种协议(TCP/IP、DECnet、LU6.2等)。提供了多种开发工具,能极大的方便用户进行进一步的开发。Oracle良好的兼容性、可移植性、可连接性和高生产率是Oracle RDBMS具有良好的开放性。 Oracle价格是比较昂贵的。据说一套正版的Oracle软件早在2006年年底的时候在市场上的价格已经达到了6位数。所以如果你的项目不是那种超级大的项目,还是放弃Oracle 吧。 SQL Server SQL Server 是Microsoft推出一套产品,它具有使用方便、可伸缩性好、与相关软件集成程度高等优点,逐渐成为Windows平台下进行数据库应用开发较为理想的选择之一。SQLServer是目前流行的数据库之一,它已广泛应用于金融、保险、电力、行政管理等与

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)

数据库(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、试述数据库系统的特点。 (1)、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。 (2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统, (3)数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。 (4)数据由DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。 2、数据库管理系统的主要功能有哪些? 答: ( l )数据库定义功能; ( 2 )数据存取功能; ( 3 )数据库运行管理; ( 4 )数据库的建立和维护功能。 3、试述数据模型的概念、数据模型的作用和数据模型的三个要素。 数据模型是数据库中用来对现实世界进行抽象的工具,是数据库中用于提供信息表示和操作手段的形式构架。 因此数据模型通常由数据结构、数据操作和完整性约束三部分组成。 4、试述概念模型的作用。

概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。 5、试述数据库系统三级模式结构 数据库系统的三级模式结构由外模式、模式和内模式组成。 特点:(1)数据结构化。(2)数据的共享性高,冗余度低,容易扩展。(3)数据独立性高。(4)数据有DBMS统一管理。 6、试述数据库系统的组成。 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。 7、DBA 的职责是什么? 负责全面地管理和控制数据库系统。具体职责包括:①决定数据库的信息内容和结构;②决定数据库的存储结构和存取策略;③定义数据的安全性要求和完整性约束条件;④监督和控制数据库的使用和运行;⑤改进和重组数据库系统。 8、试述关系模型的三个组成部分。 答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成 9、试述关系数据语言的特点和分类。 答:关系数据语言可以分为三类: (1)关系代数语言。

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是最受欢迎的开源SQL数据库管理系统,它是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用。MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。(2)MySQL是开源的。 (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。 (4)MySQL服务器工作在客户/服务器或嵌入系统中。 Server(流行于Web) SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,通过Web对数据进行轻松安全的访问,具有强大的、灵活的、基于Web的和安全的应用程序管理等。而且,由于其易操作性及其友好的操作界面,深受广大用户的喜爱。(功能齐全,大型,专业,企业级,其开发工具全部用JAVA来写的) 目前,Oracle产品覆盖了大、中、小型机等多种机型,Oracle成为世界上使用最广泛的关系数据系统之一。 (1)可联结性:Oracle能与多种通讯网络相连,支持客户机/服务器方式和各种协议(TCP/IP、DECnet、等)。 (2)开放性:Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。 (3)名符其实的大型数据库:ORACLE建立的数据库,最大数据量可达几百GB; (4)共享SQL和多线索服务器体系结构:这两个特性的结合,减少ORACLE的资源占用,增强处理能力,能支持成百甚至上千个用户。 (5)跨平台能力:ORACLE数据库管理系统可以运行在100多个硬件和软件平台上,这一点为其它PC平台上的数据库产品所不及。 (6)分布式数据库:可以使物理分布不同的多个数据库上的数据,被看成是一个完整的逻辑数据库。

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 "密码"

成绩管理系统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列的网格布局,每个网格均放入一个面板,每个面板放入标签、文本框、组合框、按钮等组件,以达到较友好的界面效果;学生查找类子功能界面(查看全体、按年级查询、按班别查询、按专业查询)和成绩管理类子功能(单科排名、总分排名、合格学生、挂科学生)界面采用边界布局,界面的上部放入一个面板,面板放入相应的按钮或组合框,中部放入一个文本域。所有错误信息等信

传统的数据库的优劣势v1.0

1.传统数据库的优劣势 数据库技术产生于20世纪60年代末期,是计算机领域中最重要的技术之一,是一种比较理想的管理技术。数据库(Data Base)可以看作是与现实世界有一定相似的模型,是认识世界的基础,是集中、统一存储和管理某个领域信息的系统,它根据数据间的自然联系而构成,数据较少冗余,且具有较高的数据独立性,能为多种应用服务。而传统的数据库是指关系型数据库,如MySQL、Oracle、SqlServer等。 1.传统数据库的优势 ●灵活性和建库的简单性:从软件开发的前景来看,用户与关系数据库编 程之间的接口是灵活与友好的。目前在多数RDDMS产品中使用标准查询 语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。 与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准 的数据存取方法。 ●结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元 组),可为用户或程序提供多个复杂的视图。数据库设计和规范化过程也 简单易行和易于理解。由于关系数据库的强有力的、多方面的功能,已 经有效地支持许多数据库纳应用。 ●易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性) 大大减低了数据冗余和数据不一致的概率。 2.传统数据库的劣势 ●数据类型表达能力差:从下一代应用软件的发展角度来看,关系数据 库的根本缺陷在于缺乏直接构造与这些应用有关的信息的类型表达能 力,缺乏这种能力将产生以下有害的影响,例如:大多数RDBMS产品 所采用的简单类型在重构复杂数据的过程中将会出现性能问题;数据 库设计过程中的额外复杂性;RDBMS产品和编程语言在数据类型方面 的不协调。 大多数现代的RDBMS产品已成熟地用于商务和财政方面,而这些领域不要求很高和很复杂的数据模型。虽然这些产品多多少少克服了 一些以上所述的缺点,但从理论上看关系数据模型不直接支持复杂的

mysql数据库常用语句大全

mysql数据库常用语句 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:mssql7backupMyNwind_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 范围

第7章 MySQL数据库系统

第7章 MySQL数据库系统 具体步骤: 1.准备工作 为了避免发生端口冲突、程序冲突等现象,建议先查询MySQL软件的安装情况,确认没有使用RPM方式安装的mysql-server、mysql软件包,否则建议将其卸载。 2.源码编译及安装 1)创建运行用户 为了加强数据库服务的权限控制,建议使用专门的运行用户,如mysql。此用户不需要直接登录到系统,可以不创建宿主文件夹。 2)解包 将下载的mysql源码包解压,释放到/usr/src/目录下,并切换到展开后的源码目录。 3)配置 在内容丰富、结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设置为utf8,并添加对gbk、gb2312等其他字符集的支持。 在配置过程之前,系统可能会提醒你设置一下系统日期,否则不能进行配置工作。 在mysql 5.1.55版本的源码包中,对于通过--with-extra-charset配置选项后添加的其他字符集编码,还需要对其进行一下小调整,才能在编译后获得完整的支持。如修改include子文件下的config.h文件,添加相应字符集的编译定义即可: 4)编译并安装 编译报错时,可能是缺少一个ncurses-devel包,安装之后再配置一次即可。

3.安装后的其他调整 1)建立配置文件 在MySQL源码目录中的support-files文件夹下,提供了适合不同负载数据库的样本配置文件。如果不确定数据库系统的应用规模,一般选择https://www.sodocs.net/doc/745539095.html,f文件即可,该文件能够满足大多数企业的中等应用需求。 2)初始化数据库 为了能够正常使用MySQL数据库系统,应以运行用户mysql的身份执行初始化任务,以便建立用户授权库、表,以及test测试库等。初始化脚本mysql_install_db位于安装目录下的bin文件夹中。此外,还应调整用于存放数据库内容的文件夹属性,以便mysql用户有权限对其进行读写操作。 3)优化执行路径、程序库路径 为MySQL系统的各种执行程序添加符号链接,以方便其使用。另外,建议MySQL 的库文件、头文件也添加符号链接,便于在安装其他的用到这些文件的软件包时能自动搜索。 4.添加系统服务 若希望添加mysqld系统服务,以便通过chkconfig进行管理,可以直接使用源码包中提供的服务脚本。找到support-files文件夹下的mysql.server脚本文件,将其复制到/etc/init.d/目录下,并改名mysqld,然后再设置执行权限,通过chkconfig命令将其添加为mysqld系统服务。 访问MySQL数据库 1.登录到Mysql服务器 经过安装后的初始化过程,MySQL数据库的默认管理员账号为root,密码为空。若要以未设置密码的root用户登录本机的MySQL数据库,可以执行以下操作:

SQL数据库的基本操作

命令行 1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES; 2、建立数据库:mysql> CREATE DATABASE 库名; 3、建立数据表:mysql> USE 库名;mysql> CREATE TABLE 表名(字段名VARCHAR(20), 字段名CHAR(1)); 4、删除数据库:mysql> DROP DATABASE 库名; 5、删除数据表:mysql> DROP TABLE 表名; 6、将表中记录清空:mysql> DELETE FROM 表名; 7、往表中插入记录:mysql> INSERT INTO 表名VALUES ("hyq","M"); 8、更新表中数据:mysql-> UPDATE 表名SET 字段名1='a',字段名2='b' WHERE 字段名3='c'; 9、用文本方式将数据装入数据表中:mysql> load data local infile "d:/mysql.txt" into table 表名; 10、导入.sql文件命令:mysql> USE 数据库名;mysql> source d:/mysql.sql; 11、命令行修改root密码:mysql> update https://www.sodocs.net/doc/745539095.html,er set password=password('新密码') where user='root';mysql> flush privileges; 12.修改密码的三种方法:mysql>update user set password=password('') where user='joy_pen';mysql>flush privileges;mysql>set password for 'joy_oen'=password('');mysql>grant usage on *.* to 'joy_pen' identified by ''; 1、创建数据库 命令:create database <数据库名> 例如:建立一个名为xhkdb 的数据库mysql> create database xhkdb; 2、显示所有的数据库 命令:show databases (注意:最后有个s)mysql> show databases; 3、删除数据库 命令:drop database <数据库名> 例如:删除名为xhkdb的数据库mysql> drop database xhkdb; 4、连接数据库 命令:use <数据库名> 例如:如果xhkdb数据库存在,尝试存取它:mysql> use xhkdb; 屏幕提示:Database changed 5、当前选择(连接)的数据库mysql> select database(); 6、当前数据库包含的表信息:mysql> show tables; (注意:最后有个s) 三、表操作,操作之前应连接某个数据库 1、建表 命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]); mysql> create table MyClass( > id int(4) not null primary key auto_increment, > name char(20) not null, > sex int(4) not null default ''0'', > degree double(16,2)); 2、获取表结构 命令:desc 表名,或者show columns from 表名 mysql>DESCRIBE MyClass mysql> desc MyClass;

数据库综合练习一及答案

数据库综合练习一 一、选择题 1.描述事物的符号记录称为___B_____。 A、信息 B、数据 C、记录 D、记录集合 2._C___是长期存储在计算机的有组织,可共享的数据集合。 A、数据库管理系统 B、数据库系统 C、数据库 D、文件组织 3.__A___是位于用户与操作系统之间的一层数据管理软件。 A、数据库系统 B、数据库管理系统 C、数据库 D、数据库应用系统 4.数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和__D___。 A、数据库管理系统 B、数据库应用系统 C、数据库应用系统; D、各类相关人员 5.在人工管理阶段,数据是_B____。 A、有结构的 B、无结构的 C、整体无结构,记录有结构 D、整体结构化的 6.在数据库系统阶段,数据是_D____。 A、有结构的 B、无结构的 C、整体无结构,记录有结构 D、整体结构化的

7.在文件系统阶段,数据__B___ A、无独立性 B、独立性差 C、具有物理独立性 D、具有逻辑独立性 8.数据库系统阶段,数据__D___。 A、具有物理独立性,没有逻辑独立性 B、具有物理独立性和逻辑独立性 C、独立性差 D、具有高度的物理独立性和一定程度的逻辑独立性 9.非关系模型中数据结构的基本单位是___C__。 A、两个记录型间的联系 B、记录 C、基本层次联系 D、实体间多对多的联系10.数据的正确、有效和相容称之为数据的__B___。 A、安全性 B、一致性 C、独立性 D、完整性 11.在数据模型的三要素中,数据的约束条件规定数据及其联系的___B__。 A、动态特性 B、制约和依存规则 C、静态特性 D、数据结构 12.___B__属于信息世界的模型,实际上是现实世界到机器世界的一个中间层次。 A、数据模型 B、概念模型 C、E-R图 D、关系模型 13.在对层次数据库进行操作时,如果删除双亲结点,则相应的子女结点值也被同时删除。这是由层次模型的_C____决定的。 A、数据结构 B、数据操作 C、完整性约束 D、缺陷

MYSQL数据库基本操作详细教程

MYSQL数据库 学习目标: ●掌握MYSQL基本知识 ●学习数据库管理和操作 ●掌握数据库设计方法 ●熟练运用SQL编程语言 基本概念 MYSQL数据库是关系型数据库。 关系型:使用一个关系,来表示实体信息和实体之间的联系。关系:就是二维表,有行有列的表格。 这两张表通过班级名称关联起来。 关系型数据库:就是由二维表及其之间的联系组成的数据组织。 同一个表中数据结构完全一致。 数据是由记录组成 记录是由字段组成。 SQL:结构化查询语言 专门用于处理关系型数据库编程语言。 PHP也是编程语言 变量,流程控制,函数

数据库服务器的结构 DBS = DBMS + DB 数据库系统= 数据库管理系统+ 数据库(数据) 命令行客户端

数据在服务器上是如何存储的? 操作服务器 通过服务管理来操作服务器 开始->运行-> 3306是MYSQL服务程序的默认端口号 可以用netstat –an命令查看服务是否启动

命令行命令控制服务器的启动和关闭 Net start mysql Net stop mysql 错误原因:没有权限 解决办法:用管理员方式启动命令行窗口 C/S, client / server客户端/服务器方式访问数据库命令行客户端工具

流程: 1.连接和认证,提供4个参数,分别是主机地址,端口号,用户名,密码 2.向MYSQL数据库服务器发送SQL 3.MYSQL服务器接收并执行SQL,并且把结果返回给客户端 4.客户端对结果进行显示 5.断开服务器连接。Exit, quit, \q 2,3,4这几步可以循环执行 知识: 非关系型数据库,NOSQL,not only sql 不仅仅是SQL 代表:redis, mongodb 数据存储有点象数组,key/value SQL语言 存储数据: 首先建立数据库 之后建立数据表(字段定义) 操作数据 数据有哪些操作 CURD CREATE UPDATE READ DELETE(DROP)

相关主题