admin管理员组

文章数量:1665129

 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。随着信息技术的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式,数据库应用的越来越广泛,地位越来越重要。

数据库的发展主要有三个阶段: 1,层次模型 2,网状模型 3,关系模型 而目前被我们广泛使用的就是关系型数据库,而管理这种关系型数据库的软件为RDBMS(关系型数据库管理系统)。 RDBMS的特点:   1.数据以表格的形式出现   2.每行为各种记录名称   3.每列为记录名称所对应的数据域   4.许多的行和列组成一张表单   5.若干的表单组成database 而目前主流的RDBMS有: 1,Oracle 相信我们技术圈的人士都听过Oracle的大名,它是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州。目前,Oracle产品覆盖了大、中、小型机等几十种机型,Oracle数据库性能优越,技术服务做的非常好,并已成为世界上使用最广泛的关系数据系统之一。并且,Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在70种以上不同的大、中、小型机上;可在VMS、DOS、UNIX、Windows等多种操作系统下工作。但是,它昂贵的售价让人望而生畏,主要被大型的企业所使用。 2,EnterpriseDB EnterpriseDB公司提供基于PostgreSQL的分布,性能也非常优越,是面向企业级的应用数据库。但是,售价比Oracle便宜 3,PostgreSQL PostgreSQL是自由的对象-关系数据库服务器(数据库管理系统),在灵活的BSD许可证下发行,是开源的一款性能优越的数据库软件。 4,DB2 IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性。 5,Mysql mysql是一个开放源码的关系型数据库管理系统,它的象征符号是一只名为Sakila的海豚,代表着MySQL数据库和社团的速度、能力、精神和优秀品质。原开发者为瑞典的mysqlAB公司,该公司2008年被Sun公司收购。而2009年,Sun又被Oracle公司所收购,就这样mysql就成了Oracle旗下的产品。 MySQL性能高、成本低、可靠性好,是最流行的开源数据库,被广泛地应用在Internet上的中小型网站中。而随着MySQL的不断成熟,它也逐渐用于大规模网站和应用,比如维基百科、Google和Facebook等网站。而开源软件的黄金组合LAMP中的“M”指的就是MySQL。 但被mysql被Oracle公司收购后,Oracle大幅调涨MySQL商业版的售价,且Oracle公司不再支持Open Solaris的发展,因此导致共享软件社群们对于Oracle是否还会持续支援MySQL社群版(MySQL之中唯一的免费版本)有所隐忧,因此原先一些使用MySQL的开源软件逐渐转向其它的数据库软件。 6,SQL Server microsoft出的一款数据库管理软件,适用于中小型的数据库   数据库中的数据组成部分有两种:  元数据:特定软件所解析数据的元数据  数据:数据本身 数据库视图有:  1,逻辑模型:      表(核心对象)      索引(加速 查询操作,减慢写操作)      视图(虚表)      用户      存储过程      存储函数      触发器      事件调度器:能定期执行任务      游标    2,物理模型:     数据管理组件(元数据)     存储引擎:专门用于存储数据和元数据,而一般每个软件的存储引擎是不一样的,即存储的结构是不同的   而我们本文浅析的对象就是--mysql,下面我们开始我们的航程: 一,mysql简介 mysql是用c和c++语言开发的,故工作的执行速度是非常快的。在企业级的应用中,一般要使用64bit的mysql,因为它支持的寻址空间更大。 它的主要特点: 1,完全多线程 2,搞可靠性 3,良好的伸缩性 4,易用性 5,遵循标准可移植性比较好 6,支持多用户 7,国际性 8,支持多种应用程序,例如:c,c++,java,perl,php,python,ruby,jdbc,odbc,等 9,开源软件   一般的开源软件,都会有几个发行版本,而mysql也不例外: 1,alpha:内测版 2,beta:公测版 3,RC:预发行版本 4,GA:公共可用正式版 而mysql的发行版中也有两个版本: 1,社区版 软件完全免费 2,企业版 功能比社区版更强大,提供一些特殊的组件和技术支持,是收费的   mysql的各种组件: MySQL Server MySQL Cluster MySQL Proxy MySQL Adminitrator MySQL Query Browser MySQL Workbench MySQL Migration Toolkit MySQL Embedded Server MySQL Drivers and Connectors   mysql的存储引擎: 1,MyISAM:不支持事物机制;当创建一个数据表会产生三个文件:数据文件,索引文件和表结构定义文件 2,InnoDB:mysql 5.5以后版本之后默认使用的存储引擎,支持事物机制;当创建一个数据表只会产生一个文件:表空间文件 3,NDB:集群专用引擎 4,Archive:主要是将数据归档成一种格式,适合长期存放 5,Federrated:联合存储引擎 6,Memory:内存引擎;数据存储在内存中,但不能持久存储数据 7,Merge:此引擎允许你把许多结构相同的表合并为一个表   RDBMS只是一个数据库管理软件,那么他怎么和数据库进行交户呢? 这就用到了SQL接口,通过SQL语言来实现对数据库的操作。而不同的数据库管理软件,所能使用的SQL语言也不尽相同: 而mysql使用的SQL语言为通常有如下类型: 1,DDL 数据定义语言,主要有CREATE,ALTER,DROP命令 2,DML 数据操作语言,主要有INSERT,DELETE,UPDATE,TRUNCATE等 3,DQL 数据查询语言,主要有SELECT   二,mysql的安装 1,源码安装 主要有源码包和rpm格式的源码 2,二进制 rpm包的格式,rpm包又分为放行商和mysql官方的软件包 绿色软件,我们解压直接能使用   mysqld服务器端的配置文件的查询次序为: 1,/etc/myf 2,/etc/mysql/myf 3,$MYSQL_HOME/myf 4,/path/to/file when defaults-extra-file=/path/to/file is specified 5,~/.myf Windows下mysqld服务器端配置文件的查询次序为: 1,%WINDIR%\my.ini, %WINDIR%\myf 2,C:\my.ini, C:\myf 3,%INSTALLDIR%\my.ini, %INSTALLDIR%\myf 4,/path/to/file when defaults-extra-file=/path/to/file is specified 并且无论当前的配置文件,查找到或查找不到,都会往下查找下去,并且以最近查找的配置文件的定义为准   三,mysql客户端工具的使用 1,mysql 它是登录mysqld服务器的一个工具,登录之后可以对服务器进行管理 常用选项: -u 指定用户名 -p 指定密码 -h 指定mysqld服务器所在的主机,缺省为localhost   #mysql -uroot -pyour_password 用root用户直接登录mysql(刚安装的mysql默认root用户的密码为空)   #mysql -uroot -p Enter password: 输入你的密码即可登录   #mysql -uroot -pyourpassword < my.sql 导入一个sql脚本   #mysql -uroot -pyourpassword --safe-updates 登录进mysql之后,sql命令的执行必须要加上where关键字,否则无效   而登入mysql之后的一些基本命令: 首先,我们要理解各种提示符的意思: -> 续行符 ‘> 表示等待输入另一‘ “> 同上 `> 通常用于引用数据库对象 /*> 提供注释符信息    如果是服务器端的命令语句的话,语句最后要加";",表示语句到此结束。客户端命令不用加";"。   基本命令: \? 获取能使用的命令帮助列表 \d 修改语句的结束符,默认为;  例:\d // \g 不管结束符是什么,都会执行   例:mysql> show databases\g  \G 不管结束符是什么,输出结果竖排   例:mysql> show databases\G \! 执行shell命令    例:mysql> \! ls  /root \s 从服务器端获取状态信息,并显示 \. 批处理模式,用于执行一个SQL脚本     ( 注意:mysql的命令是不区分大小写的; 字段也是不区分大小写的) 常用命令: mysql>use db_name 更改默认使用的数据库 mysql>show databases; 查看存在的数据库 mysql>show warnings; 查看警告信息 mysql>show tables; 查看数据库中的表 mysql>desc tablename; 查看表结构 mysql>select database(); 查看当前默认的数据库 mysql>select user(); 查看当前登录的用户   而其它命令的使用方法,可以通过help命令获取到: help command 获取命令的帮助信息 例:mysql> help create     mysql> help alter database     mysql> help show      mysql客户端的命令历史文件位置:~/.mysql_history   2,mysqladmin 它也是一个mysqld服务器客户端的一个管理工具,不用登录直接进行管理   sqluser:指的是登录mysql的用户 yourpassword:只登录mysql用户的密码   #mysqladmin -usqluser -pyourpassword create databasename   创建一个新数据库  #mysqladmin -usqluser -pyourpassword drop databasename     删除一个数据库及其所有表  #mysqladmin -usqluser -pyourpassword extended-status       给出服务器的一个扩展状态消息 #mysqladmin -usqluser -pyourpassword flush-hosts           洗掉所有缓存的主机  #mysqladmin -usqluser -pyourpassword flush-logs            洗掉所有日志 #mysqladmin -usqluser -pyourpassword flush-tables          洗掉所有表 #mysqladmin -usqluser -pyourpassword flush-privileges      再次装载授权表(同reload) #mysqladmin -usqluser -pyourpassword kill id...            杀死mysql线程 #mysqladmin -usqluser -pyourpassword password              新口令,将老口令改为新口令 #mysqladmin -usqluser -pyourpassword ping                  检查mysqld运行状态 #mysqladmin -usqluser -pyourpassword processlist           显示服务其中活跃线程列表 #mysqladmin -usqluser -pyourpassword reload                重载授权表   #mysqladmin -usqluser -pyourpassword refresh               洗掉所有表并关闭和打开日志文件  #mysqladmin -usqluser -pyourpassword shutdown              关掉服务器   #mysqladmin -usqluser -pyourpassword status               给出服务器的状态信息 (#mysqladmin -usqluser -pyourpassword --sleep 3 status 每三秒显示一次服务器端的状态信息)  #mysqladmin -usqluser -pyourpassword variables             打印出可用变量信息 #mysqladmin -usqluser -pyourpassword version               得到服务器的版本信息    当然,前面我们解析了mysql的配置文件myf,如果我们不想每次登录都输入密码的话,我们可以在当前用户的家目录建立一个文件:.myf。 我们以mysql中的root用户为例,root用户的密码是123456: #cd ~ #vim .myf 添加如下内容: [mysql] user=root password=123456 这样我们用mysql客户端登录服务器就不用使用密码了,可直接登录: # mysql  可直接登录mysql服务器 即[]中的内容是关键,如果我们定义为mysqladmin,则使用mysqladmin就不用输入密码,而如果我们想使用mysql的客户端工具都不输入密码,则把[]中内容该为“client”: 例: #cd ~ #vim .myf 添加如下内容: [client] user=root password=123456 这样我们使用mysql的客户端工具,都不用输入密码 #mysqladmin version  可直接查看mysql版本  








本文转自 leejia1989 51CTO博客,原文链接:http://blog.51cto/leejia/827778,如需转载请自行联系原作者

本文标签: 数据库Linuxmysql