Linux下Mysql数据库浅析(一)-阿里云开发者社区

开发者社区> 余二五> 正文

Linux下Mysql数据库浅析(一)

简介:
+关注继续查看

 数据库(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,.net等
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/my.cnf
2,/etc/mysql/my.cnf
3,$MYSQL_HOME/my.cnf
4,/path/to/file when defaults-extra-file=/path/to/file is specified
5,~/.my.cnf
Windows下mysqld服务器端配置文件的查询次序为:
1,%WINDIR%\my.ini, %WINDIR%\my.cnf
2,C:\my.ini, C:\my.cnf
3,%INSTALLDIR%\my.ini, %INSTALLDIR%\my.cnf
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的配置文件my.cnf,如果我们不想每次登录都输入密码的话,我们可以在当前用户的家目录建立一个文件:.my.cnf。
我们以mysql中的root用户为例,root用户的密码是123456:
#cd ~
#vim .my.cnf
添加如下内容:
[mysql]
user=root
password=123456
这样我们用mysql客户端登录服务器就不用使用密码了,可直接登录:
# mysql  可直接登录mysql服务器
即[]中的内容是关键,如果我们定义为mysqladmin,则使用mysqladmin就不用输入密码,而如果我们想使用mysql的客户端工具都不输入密码,则把[]中内容该为“client”:
例:
#cd ~
#vim .my.cnf
添加如下内容:
[client]
user=root
password=123456
这样我们使用mysql的客户端工具,都不用输入密码
#mysqladmin version  可直接查看mysql版本
 









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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux 每天自动备份mysql数据库的方法
Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载   linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤。   /usr/bin为mysql安装目录 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.
754 0
Linux Mysql数据库安全配置
Linux Mysql数据库安全配置目录: 1.修改mysql管理员账号root的密码(2种方法) 2.修改mysql管理员账号root 3.mysql管理员root账号密码遗忘解决办法(2种方法) 4.
1309 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4617 0
linux的crontab定时服务备份mysql数据
linux的crontab定时服务备份mysql数据
8 0
阿里云服务器Linux系统如何安装MySQL数据库?
我之前写过阿里云服务器ECS如何安装宝塔面板 ,安装完宝塔控制面板之后,里面自带有mysql数据库,非常方便······
2319 0
linux系统部署mongodb数据库
linux系统部署mongodb数据库http://www.bieryun.com/3215.html 首先大家要先去mongodb的官网下载我们的Linux版本的数据库,大家可以直接点击当前链接进行下载:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.3.tgz,这是最新版本的mongodb大家若是下载不来,可以直接去官网自己下载去。
1084 0
PHP:mysqli对数据库进行CURD增删改查
PHP:mysqli对数据库进行CURD增删改查
15 0
+关注
13347
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载