数据库是非常重要的技术,安全人员绝对离不开数据库,必须要好好学一学。
1.1 什么是【数据库】?
库:水库、仓库,存储东西的容器、地方。
数据库:存储数据的仓库,这个仓库更特别,摸不着,看不见。在计算机里面。
1.2 为什么需要数据库?
网站元素:
图片 , 视频 , 压缩包
文本 ,html,js,css,php,python,java (程序代码)
网站元素存放地点:
存储服务器上:图片 , 视频 , 压缩包 (资源文件) ,可以是 Linux 上一个目录
Web 服务器上: html,js,css,php,python,java (程序文件) , Linux 上一个目录
数据库里: 文本 :文章、订单、商品、钱、装备(文本内容), Linux 单独复杂软件(容器)
数据库可以存储文本、图片、视频,采用单独的文件系统的(自身有存储引擎)形式。
数据库往往采用单独的软件来实现对数据的存取。
## 电商网站,这些功能都必须要数据库来交互。
注册会员、登录会员、购买订单、支付、物流跟踪、评价
1.3 数据库处于网站当中的位置
数据库网站最核心【指挥部】,没有之一,处于网站的最后端。
极其重要,最核心数据都在数据库里。
最脆弱,极难扩展。最容易出现瓶颈,最重要。
1.4 数据库种类
1.关系型数据库:
最古老的数据库,本质二维表格( excell 表格 )
产品: oracle( 当下市场只有存量,几乎没有增量了 ) 、 mysql , sql server( 微软产品 )
访问:存取是使用 sql 语言
场景:动态网站的后端(用户、密码、文章、商品、订单、钱)
优点:数据安全有充分的保证。 *
缺点:访问效率低,扩展困难。
数据库管理员: DBA ( database administrator )
待遇工资:高于运维、高于安全、高于开发
重要程度:公司里最重要的岗位,没有之一。 国产数据库百花齐放时代:千家厂商乱世争雄
oracle :当下市场只有存量,几乎没有增量,中国未来 3-10 年绝大部分被替换。
不需要刻意学,有需要就学。
mysql: 互联网最火,但是被 oracle 收购了。
sql server :微软产品 (C# 语言, ASP,ASP.NET)
2.NOSQL数据库(not only sql)
( 2008 开始移动互联网,数据量暴增)
定位:关系数据库的补充,而不是替代关系数据库。
特点:不是 特别 关心数据安全,关注核心是高并发(同时访问的人数)。
背景:大并发、大流量、大数据量,解决关系数据库的短板,核心解决大并发。
产品: memcache (内存数据库) ,redis (内存 + 磁盘) ,mongodb (文档类数据库)
redis :用于数据库前端做数据库的缓存
mongodb :文档型数据库, json 格式数据,是一种轻量级的数据交换格式
3.new sql(国产数据库),
几乎都是 分布式数据库 (面向物联网)
ob( 蚂蚁金服 ) 、 tidb(TB 级别数据量 ) 、高斯 db (华为)、达梦
定位:国产、大并发、大流量、大数据量、大存储量。
架构:分布式数据库、随意扩展。
千亿市场,有很多机会。
4.云时代数据库(云厂商开发维护)
阿里云 RDS, 腾讯云 TDSQL
5.看看数据库排名(趋势)
1、国产十大数据库排名是:
OceanBase 、 TiDB 、 openGauss 、 GaussDB 、
达梦、 PolarDB 、 GBase 、人大金仓、 TDSQL
2、所有数据库排名
1.Oracle 传统公司,国家企事业
2.MySQL 互联网公司
3.Microsoft SQL Server (老男孩放弃)
4.PostgreSQL 互联网公司
5.MongoDB 互联网公司
6.Redis 缓存
7.Elasticsearch 搜索业务
1.4 mysql数据库
1 )特点 :
1. 关系型数据库
2. 使用 sql 语句管理
3. 互联网公司最常用
( a. 免费。 b. 开源。 c. 稳定。 d. 社区活跃 e. 大并发解决方案 .f. 数据安全能够得到保证) 2 ) mariadb
mysql 数据库的近亲兄弟
mysql 被 10 亿美金被 oracle 收购,可能收费。
mysql 创始人跳出来又搞了一个数据库 mariadb ,和 mysql 几乎一样,但仍然开源。
centos 系统官方源就把 mysql 软件包从官方原里面去掉,把 mariadb 加入到了官方源里。
那么我们学习 mariadb ,所有学习到的东西无缝用到 mysql 里。
1.5 安装mariadb
1.安装mariadb
yum install mariadb-server mariadb -y
2.启动及加入开机自启动
#启动
systemctl start mariadb
#加入开机自启动
systemctl enable mariadb
3.端口检查
ss -lnt|grep 3306
##有飘红的3306就对了。
4.开机自启动检查
#方法1:
systemctl status mariadb
#方法2:
systemctl list-unit-files|grep mari
#方法3:
systemctl is-enabled mariadb
5.登录与退出
[root@oldboy ~]# mysql
MariaDB [(none)]> quit或ctrl+d退出
6.数据库数据目录和错误日志
[root@oldboy ~]#rpm -ql mariadb-server
/var/lib/mysql ##数据库数据目录
/var/log/mariadb/mariadb.log ##错误日志
7.安装过程遇到错误如何排查?
1)grep -i error /var/log/mariadb/mariadb.log
2)systemctl status mariadb
3)新数据库正常安装现启动不了#忽略依赖卸载
rpm -e --nodeps mariadb-server mariadb
#删除数据库的数据目录
rm -fr /var/lib/mysql
#安装数据库
yum install mariadb-server mariadb -y