课程目标:

一、MySQL概述

1. 数据库的分类

1.1 关系型数据库

我们常说的关系型数据库,RDBMS(relational database management system),既关系型数据库管理系统;它是指建立在==关系模型==上的数据库系统,关系模型是指用==二维表==的形式表示==实体==和实体间联系的数据模型。比如:

我们需要将学生的信息(姓名、性别、年龄、学号等)保存到数据库中,其中==学生就是一个实体==,==学生的信息就是实体的属性==。这些数据不是直接放到数据库中,而是有组织有纪律的存放在不同的二维表中,并且实体(学生)与实体(学生)之间的关系可以设置。

rdbms

关系型数据库,是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型。

==oracle、mysql==、DB2(IBM)、Sybase、==SQL server==(Microsoft微软)、IBM Informix

特点:容易理解、方便使用、数据一致、读写实时等;

关系型数据库的最大特点就是==事务的一致性==:所以也在对事物一致性的维护中有很大的开销.

什么是事务:

事务由一条或者多条sql语句组成,在事务中的操作,这些sql语句要么都执行,要么都不执行,这就是一个事务。

==举例说明:==

  1. 登陆ATM机,输入密码;
  2. 连接数据库,验证密码;
  3. 验证成功,获得用户信息,比如存款余额等;
  4. 用户输入需要转账的金额,按下确认键;
  5. ==从后台数据库中减掉用户账户上的对应金额(update语句);==
  6. ==从后台数据库中给对方账户增加相应的金额(update语句);==
  7. 确认,退卡,走人;

事务特点(ACID):

注意:

==在关系型数据库中,导致性能欠佳的最主要原因是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。==

1、对数据的一致性要求较高;2、对读写的实时性要求较高;3、典型的银行及支付系统类;

1.2 非关系型数据库

非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL( Structured QueryLanguage,结构化查询语言)

MangoDB、Redis、Membase等

1、对数据库性能要求较高;2、需要灵活性更强的IT系统;3、不需要高度的数据一致性;

 

2. MySQL数据库介绍

MySQL是由MySQL创始人和主要开发人在瑞典创办的一个mysql AB公司。 2008年1月16号 MySQL被Sun公司收购。 2009年04月20日Oracle收购Sun 公司,MySQL 转入Oracle 门下。 Oracle 对MySQL版本重新进行了划分,分成了社区版和企业版,企业版是需要收费的,当然收费的就会提供更多的功能。

社区版:MySQL Community Edition (==GPL==)

1、可以看做是企业版的“广泛体验版(小白鼠版)”,未经各个专有系统平台的压力测试和性能测试

2、基于GPL协议发布,可以随意下载使用

3、没有任何官方技术支持服务

企业版:MySQL Enterprise Edition(==commercial==)

1、提供了比较全面的高级功能、管理工具及技术支持

2、安全性、稳定性、可扩展性比较好

集群版:MySQL Cluster CGE(==commercial==)

扩充:关于版本的命名方式如何定义?

版本说明
α(Alpha)版内测版,内部交流或者专业测试人员测试用。Bug较多,普通用户最好不要安装。
β(Beta)版公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合一般用户安装。
γ ( Gamma )版相当成熟的测试版,与即将发行的正式版相差无几。
==Final==正式版本
Free自由版本
==Release==发行版本
==Standard==标准版本
==Mini==迷你精简版本,只有最基本的功能
Upgrade升级版本
==GA(GenerallyAvailable)==开发团队认为该版本是稳定版,可以在较为关键的场合使用。
Retail零售版

3. MySQL的获取

官网:www.mysql.com

4. MySQL的安装方式

4.1 通过二进制的方式安装

命名:MySQL-server-5.6.31-1.el7.x86_64.rpm ,需要在特定linux版本下编译。

命名:MySQL-server-5.6.31-1.linux_glibc2.5.x86_64.rpm ,依赖1库,可以安装在通用的Linux系统下

优点:

安装和维护都比较方便,不需要编译。

缺点:

可定制性差,可移植性差,一个系统上只能安装一个mysql,不灵活 。

4.2 源代码编译安装

命名:mysql-5.6.31.tar.gz,通用的Linux下都可以编译安装。

优点:

可定制性强(安装可以根据用户的需求,只安装所需要的功能)

缺点:

安装复杂,所需要的时间比二进制的安装要长得多

二、MySQL数据库的安装

1. rpm包安装

1.1 安装须知

 

1.2 安装MySQL数据库

我的环境:

MySQL相关软件存放路径:

rpm包安装MySQL步骤:

1.3 MySQL客户端工具

2. glibc包安装

2.1 安装须知

mysql_glibc1

2.2 安装MySQL数据库

参考官当:MySQL-glibc安装手册

需求:

 

具体步骤:

2.3 启动MySQL多实例

二进制的rpm包和glibc包安装mysql后,默认端口都是3306,如果在同一台主机上使用以上2种方式安装多个mysql实例后,默认情况下只能启动一个mysql实例。

 

 

2.4 总结

二进制rpm包和glibc包方式安装的优缺点:

安装方式优点缺点
rpm安装卸载简单可定制性差
glibc安装相比rpm包复杂些可定制性相比rpm包灵活些

 

####3. 源码安装

3.1 安装须知
3.2 源码安装MySQL数据库

参考官当:MySQL-Source安装配置手册

源码安装三步曲:配置——>编译——>安装

3.2.1 需求
3.2.2 了解配置选项
配置选项描述默认值建议值
CMAKE_INSTALL_PREFIX安装基目录(basedir)/usr/local/mysql根据需求
MYSQL_DATADIR数据目录(datadir) 根据需求
SYSCONFDIR默认配置文件my.cnf路径 /etc
MYSQL_TCP_PORTTCP/IP端口3306非默认端口
MYSQL_UNIX_ADDR套接字socket文件路径/tmp/mysql.sock$basedir/
DEFAULT_CHARSET默认字符集latin1utf8mb4
DEFAULT_COLLATION默认校验规则latin1_swedish_ciutf8mb4_general_ci
WITH_EXTRA_CHARSETS扩展字符集allall
ENABLED_LOCAL_INFILE是否启用本地加载外部数据文件功能OFF建议开启
3.2.3 安装步骤
3.2.4 后续配置

 

三、设置管理员root密码

1. 设置密码或修改新密码

2. 忘记密码重置密码

3. MySQL5.7版本区别

password5.7

###四、补充扩展

1. 字符集与字符编码

==字符:==字符是各种文字符号的总称,包括各个国家文字、标点符号、图形符号、数字等。

==字符集:==字符集是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。也就是说字符编码是字符集的实现方式。

需要注意的是:有的字符编码和字符集的名称是一致的。

  1. 非常肯定只有中文终端用户时,可选择gbk/gb2312字符集,否则选用utf8mb4字符集。
  2. 为了方便数据迁移、以及多种终端展示,最好使用utf8mb4。
  3. 在mysql中utf8最多存放3个字节,而非实际的1-4个字节,为了不必要的麻烦建议utf8mb4。
  4. 字符无需区分大小写时,采用默认的==xxx_general_ci==校验集,否则选择==xxx_bin==校验集(生产环境中,尽量不要修改校验集).

2. 用systemd来管理mysql

==注意:以下mysqld.service文件内容适用于mysql 5.7版本以后(参考)==

==以下文件内容,适用于mysql5.6版本(参考):==

 

五、总结

rpm glibc source

 

 

 

 

 

 

 

 

注解:


1 glibc是GNU发布的libc库,即c运行库;glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.