一、数据库
1.数据库简介
数据库其实就是一个按照一定的联系和结构组织,存储的数据的仓库。
随着信息技术的发展,从1950年数据库诞生到2000年后数据库不仅仅是存储和管理数据了,而是转变成用户所需要的各种数据管理的方式,数据库有很多种类和功能,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
2.数据库的种类
最早的数据库模型有三种,分别为层次式数据库,网络式数据库和关系型数据库,而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。
(1)关系型数据库
关系型数据库产生:虽然网状数据库和层次数据库已经很好的解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺,用户在对这两种数据库进行存取时,仍然需要明确数据库的存储结构,支出存取路径,而关系型数据库就可以很好的解决这些问题
关系型数据库:用关系模型来组织数据的数据库,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系型数据库表之间的关系列举
关系型数据库中存放的表可以有联系也可以是单独存在
(2)非关系型数据库(nosql)
非关系型数据库也称之为nosql数据库,请注意,nosql的本意是“not only SQL”,指的是非关系型数据库,而不是“no SQL”的意思,因此nosql的产生并不是要彻底否定关系型数据库,而是作为传统关系型数据库的一个有效补充,NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。
随着互联网的兴起,超大规模和高并发量的微博,微信,SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:传统的关系型数据库IO瓶颈,性能瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的的功能特异化的数据库产品,NoSQL类的数据库就是在这样的情景中诞生并得到了非常迅速的发展。
NoSQL是非关系型数据库的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面,NoSQL数据存储不需要固定的表结构,通常也不存在连接操作,在大数据存取上具备关系型数据库无法比拟的性能优势,该术语(NoSQL)在2009年初得到了广泛的认同。
google的BigTable与Amazon的Dynamo是非常成功的商业NoSQL,一些开源的NoSQL体系,如Redis, mongodb也逐渐的越来越受到各大中小型企业的欢迎和追捧。
非关系型数据库的种类
键值(key-value)存储数据
键值数据库就类似传统语言中使用的哈希表,可以通过key来添加,查询或者删除数据,因为使用key主键访问,所以会获得很高的性能及扩展性。
键值(key-value)数据库主要是使用一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据,key/value模型对于IT系统来说的优势在于简单,易部署,高并发。
(3)总结关系和非关系数据库
(4)常见数据库
非关系型数据库(nosql):mongodb,redias
关系型数据库:oracle,db2,sqlserver,mysql,mariadb
二、Mariadb
1.mariadb发展
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
2.RDBMS
RDBMS(Relational Database Management System) 指的是关系型数据库管理系统。
RDBMS用SQL语言操作关系型数据库,sql语句不区分大小写。
RDBMS的特点:
- 数据以表格的形式出现
- 每行为各种记录名称
- 每列为记录名称所对应的数据域
- 许多的行和列组成一张表单
- 若干的表单组成database
RDBMS术语:
- Database - 数据库是由保存相关数据的表组成的数据源。
- Table -表,这意味着电子表格,是包含数据的矩阵。
- Column - 表示数据元素的列是保存一种类型的数据的结构;例如,送货日期。
- Row - 行是对相关数据进行分组的结构;例如,用于客户的数据。它也被称为元组,条目或记录。
- Redundancy - 此术语指的是存储数据两次,以加速系统。
- Primary Key - 这指的是唯一的标识值。此值不能在表中出现两次,并且只有一个行与其关联。
- Foreign Key - 外键用作两个表之间的链接。
- Compound Key -复合键,或复合键,是指多个列的关键。它指的是多列由于缺乏独特的质量一列。
- Index - 索引实际上与书的索引相同。 Referential Integrity - 此术语指确保所有外键值指向现有行。
三、mariadb安装
1.下载前配置
以centos7为例,如果配置了基本yum源可以直接用yum下载,但下载的版本降低,想下载最新版本的需配置网络yum源
[root@c3 ~]# cd /etc/yum.repos.d/
[root@c3 yum.repos.d]# ls
1.repo bak
[root@c3 yum.repos.d]# vim 1.repo
[1repo]
name=myrepo
enabled=1
gpgcheck=0
baseurl=file:///mnt
[epel]
name=epel
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/epel/7/x86_64/
[centos]
name=centos base
enabled=1
gpgcheck=0
baseurl=http://mirrors.163.com/centos/7/os/x86_64/
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
配置好就可以下载了,下载时注意要下载MariaDB-server.x86_64,一是注意下载是不是10.3版本,二是下载MariaDB-server就会依赖下载mariadb
2.下载后初始化
下载好启动mariadb
数据库下载之后登陆时是没有密码的,我们可以进行数据库初始化来设置登陆密码
之后的内容按照个人需求进行初始化即可
以root用户登陆数据库
3.忘记mysql的root密码
vim /etc/my.conf.d/server.conf
在[server]下或[mysqld]下添加skip-grant-tables来跳过密码验证
登陆mysql -uroot
修改密码后要将/etc/my.conf.d/server.conf里添加的skip-grant-tables去掉、
MariaDB [(none)]> use mysql
MariaDB [mysql]> update user set password=password('新密码') where user='root' and host='localhost';
MariaDB [mysql]> flush privileges;