MySQL概述
目录
内容概述
1.数据库的基本概念
2.数据库管理软件的分类
3.MySQL数据库管理软件简介
4.以yum方式部署MySQL
内容详细
1.数据库的基本概念
什么是数据?
对于数据来说,数据就是事物的状态,例如:一个人的姓名,爱好等等。
什么是记录?
上面我们提到过,数据就是记录事物的状态,那么记录就是事物的每一个状态。
什么是表?
每一个记录组成了数据,那么存放数据的载体即为表
什么是库?
每一种类型的数据都存放于一个属于自己的表中,比如:同学的基本信息表,城市表,行业表等,不同类型的表组成了库。
什么是数据库管理系统?
管理所有数据的库,我们称之为数据库。那么用来管理数据库的软件我们称之为数据库管理系统。我们常见的数据库管理软件有:MySQL、SQLServer、Oracle等等。
什么是数据库服务器?
数据库服务器是用来部署数据库管理系统软件的服务器,这类服务器一般性能要求较高,因为其不仅仅需要保证安全性和可靠性,通常对速度的要求也非常高,我们应当对数据库服务器的配置适当的升级。
2.数据库管理软件的分类
通常我们将数据库管理软件可以分为两大类,即为关系型数据库和非关系型数据库。
关系型数据库(又称RDBMS:Relational Database Management System)
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。而SQL语言是标准用户和应用程序到关系数据库的接口。其优势是容易扩充,且在最初的数据库创造之后,一个新的数据种类能被添加而不需要修改所有的现有应用软件。主流的关系数据库有oracle、db2、sqlserver、mysql等。
非关系型数据库
随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。
主流的非关系型数据库有Mongodb、Redis、Memcache
3.MySQL数据库管理软件简介
数据库种类很多,我们平时接触最多的恐怕就是Oracle数据库,或者MySQL数据。两者是应用最广泛的关系型数据。
MySQL数据库简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
MySQL的优势
MySQL 使用的 SQL 语言是用于访问数据库的最常用的标准化语言。
由于 MySQL 数据库体积小、速度快、总体拥有成本低、开放源代码,其有着广泛的应用,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,因此搭配 PHP 和 Apache 服务器可组成良好的开发环境。
MySQL 数据库管理系统具有以下系统特性:
使用 C 和 C++ 编写,并使用多种编译器进行测试,保证源代码的可移植性。
支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows 等多种操作系统。
为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
支持多线程,充分利用 CPU 资源。
优化的 SQL 查询算法,有效地提高查询速度。
既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中。
提供多语言支持,常见的编码如中文的 GB 2312、BIG 5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。
提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。
提供用于管理、检查、优化数据库操作的管理工具。
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
支持多种存储引擎。
4.以yum方式部署MySQL
部署MySQL数据库有多种部署方式,常用的部署方式就有三种:yum安装、rpm安装以及编译安装。每一种安装方式都有自己的优势,那么企业当中通常情况下采用的是rpm和二进制安装的方式。
数据库官网下载地址:https://downloads.mysql.com/archives/community/
本次部署的MySQL版本为MySQL5.7版本
Mysql 5.7的主要特性
# 更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的
# 更好的InnoDB存储引擎
# 更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。此外,GTID在线平滑升级也变得可能
# 更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题
# 原生JSON类型的支持
# 更好的地理信息服务支持:InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性
# 新增sys库
yum部署方式具体步骤
1.编写yum源配置文件
# 配置好base源和epel源
# 使用官方yum仓库
官网下载链接:https://dev.mysql.com/downloads/repo/yum/
2.wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install mysql80-community-release-el7-3.noarch.rpm
Loaded plugins: fastestmirror
3.生成yum源缓存
yum makecache
4.检查安装的yum源是否存在
yum repolist enabled | grep mysql
5.选择默认安装的版本
# 安装YUM管理工具包,此包提供了yum-config-manager 命令工具
yum -y install yum-utils
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum repolist enabled | grep mysql
6.安装MySQL服务
yum install -y mysql-community-server
7.启动MySQL服务
systemctl start mysqld
systemctl status mysqld
8.初始化
MySQL服务器初始化(从MySQL 5.7开始)
在 MySQL 服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:
# MySQL 服务器已初始化。
# 在数据目录中生成SSL证书和密钥文件。
# 安装并启用该 validate_password 插件。
# 将创建一个超级用户 帐户'root'@'localhost'。并会设置超级用户的密码,将其存储在错误日志文件/var/log/mysqld.log中。
grep 'temporary password' /var/log/mysqld.log
修改默认密码:
通过上条命令的得到生成的密码并登入MySQL,在MySQL命令行中执行:
alter user root@localhost identified by 'Test123!'; # 密码不能太过简单
9.远程连接
远程登录的话需要授权远程登录
我们最好将selinux和防火墙都关闭
# 允许任意ip连接
mysql> grant all privileges on *.* to root@'%' identified by 'Test123!';