1 基础知识
1.1 类型划分
1.1.1 关系型数据库
是指采用了关系模型来组织数据的数据库。
关系模型中的常用概念:
- 关系:一张二维表,每个关系都具有一个关系名,也就是表名。
- 元组:二维表中的一行,在数据库中被称为记录。
- 属性:二维表中的一列,在数据库中被称为字段。
- 域:属性的取值范围,也就是数据库中某一列的取值限制。
关系型数据库的优点:
- 容易理解:二维表结构是非常贴近现实世界的一个概念,关系模型相对于网状、层次更加容易理解。
- 使用方便:通用的SQL语言使得操作数据库非常方便。
- 易于维护:丰富的完整性大大减少了数据冗余和数据不一致的几率。
关系型数据库的缺点:
- 对于并发数高的网站,传统关系型数据库来说,硬盘的I/O就是一个很大的瓶颈。
- 对于每天产生数百万数据的表中,查询效率非常低。
- 在基于web的结构中,数据库很难横向扩展(加服务器组织更大集群)。当需要进行扩展时,可能往往需要停机维护。
- 性能欠佳:在关系型数据库中,导致性能欠佳的主要原因就是多表的关联查询,以及复杂的数据分析类型的SQL报表查询。
目前比较主流的数据型数据库有以下:
- Oracle、Microsoft SQL Server、MySQL、PostgreSQL、DB2、Microsoft access、SQLite、MairaDB。
1.1.2 非关系型数据库
是指非关系型的,分布式的,且一般不保证遵循ACID原则数据存储系统。
ACID:原子性、一致性、隔离性、持久性。
非关系型数据库结构:
以键值对存储的,且结构可能不固定,每一个元组可以有不一样的字段。每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构。
优点:
- 用户可以根据需要添加字段。
- 主要适用于网络设备服务,比如facebook、微博。
缺点:
- 只适合存储一些较为简单的数据,对于需要进行复杂的查询数据,关系型数据库可能更为合适。
目前比较主流的非关系型数据库:
Redis、Amazon DynamoDB、memcached、mongoDB、Elasticsearch。
1.2 CentOS7下安装MySQL
-
第一步:下载mysql yum包
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
-
第二步:安装下载的rpm包
yum localinstall mysql80-community-release-el7-3.noarch.rpm
-
第三步:把MySQL80的仓库源关闭掉,MySQL57开启
vi /etc/yum.repos.d/mysql-community.repo
进入后设置5.7版本的enabled=1
,其余均为enabled=0
-
第四步:执行该命令进行安装MySQL Server
yum install mysql-community-server
-
第五步:启动MySQL服务器
systemctl start mysqld
-
第六步:设置开机自动启动
systemctl enable mysqld
-
第七步:执行该命令获取MySQL安装时自动产生的密码。
grep 'temporary password' /var/log/mysqld.log
-
第八步:登陆MySQL服务器,密码就是第七步看到那个密码。
mysql -uroot -p
-
第九步:更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
1.3 数据库远程连接
-
第一步:授权devopsedu用户可以从任何主机访问我们的数据库
grant all privileges on *.* to '用户名'@'%' identified by '密码';
-
第二步:刷新一下权限(可选)
flush privileges;
-
第三步:下载连接MySQL工具
https://www.navicat.com.cn/
-
第四步:服务器如果开启了防火墙的情况下,执行如下命令放让别人连接数据库。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload