一、数据库的简介
数据库
存储和管理数据的仓库,数据是有组织的进行存储。
数据库英文名是 DataBase ,简称 DB 。
数据库就是将数据存储在硬盘上,可以达到持久化存储的效果。那又是如何解决上述问题的?使用数据库管理系统。
数据库管理系统 DBMS
管理数据库的大型软件
英文: DataBase Management System ,简称 DBMS
在电脑上安装了数据库管理系统后,就可以通过数据库管理系统创建数据库来存储数据,也可以通过该系统对数据库中的数 据进行数据的增删改查相关的操作。
注意:我们平时说的MySQL 数据库其实是 MySQL 数据库管理系统。
扩展:
DBA:数据库系统高级管理员
数据库的由来
人工管理阶段 ---账本
时间:20世纪50年代以前
事件:计算机主要用于科学计算。从硬件层面看,当时没有直接用于存储的设备,仅能借助卡片、磁带等外存达到数据存储的目的;从软件层面看,当时也没有完整的操作系统以及专门管理数据的软件;从数据层面看,当时数据量非常小且有没固定的数据结构,所有数据都直接由用户管理。
特点:数据不能长期保存,没有对数据进行管理的软件系统,数据不能共享,数据不具有独立性。
原文链接:数据库概述_数据库起源-CSDN博客
文件系统阶段 ---execl
时间:50年代后期到60年代中期
事件:计算机不仅用于科学计算,还运用到信息管理方面。从硬件层面看,这时出现了磁盘等数据存储设备;从软件层面看,系统可以按照文件的名称对其进行检索和访问,并可以实现文件内容的增加、修改与删除;从数据层面看,实现了文本内数据的结构化,即单个文本中各数据之间具有一定的关系,但从整体来看每个文件中的数据却是无结构的。
特点:数据可以长期保存,由文件系统管理数据,数据具有一定的共享性和独立性。
原文链接:数据库概述_数据库起源-CSDN博客
数据库系统管理阶段 ---mysql
时间:60年代后期
事件:数据库系统克服了文件系统的缺陷,提供了对数据更高级、更有效的管理,这个阶段程序与数据的联系通过数据库管理系统(DBMS)来实现,因此计算机可以用来存储和处理规模庞大的数据集。
特点:数据实现结构化,共享性高、独立性强。原文链接:数据库概述_数据库起源-CSDN博客
二、数据库的基本概念
数据库文件
按照一定规则,存放在硬盘上的数据文件集合。所以,MySQL 里的数据库都能在计算机硬盘内某个文件夹里找到对应的数据文件。
数据库实例
指计算机内存中处于运行状态的数据库程序,以及为这些程序分配的一些内存空间。实例是位于内存中,只在数据库处运行状态时才存在。简单点来讲,数据库实例就是把数据库加载到内存里面。
数据库应用
建立在数据库上,对其功能进行扩充的程序。qq 和手机银行app 都属于数据库应用程序,它们后台都需要调用数据库。
数据库分类
按照不同的数据结构又分为关系型数据库和非关系型数据库。
- 关系型数据库:结构化数据集,由行和列组合而成的二维表结构的数据。
主流的关系型数据库:Oracle:运行稳定、功能齐全、性能超群,适用于大型企业。
DB2:速度快、可靠性好、处理海量数据急速高效,适用于大中型企业。
MySQL:开源、体积小、速度快,适用于中小型企业。
SQL server:全面高效、界面友好易操作,适用于中小型企业。
- 非关系型数据库:非结构化数据集,例如用户的聊天记录、拍摄的图片、录制的视频等等。
常用的非关系型数据库:NOSQL、mongoD
数据库、DBMS和SQL之间的关系
数据库是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
数据库管理系统(DBMS)是用于管理数据库的软件,它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
SQL是一种结构化查询语言(Structure Query Language),它是国际标准化组织(ISO)采纳的标准数据库语言。
SQL语言 ---结构化查询语言
在后面的博文中会详细介绍,请订阅此专栏!!!
SQL(Structured Query Language 即结构化查询语言)
- DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程、函数, CREATE DROP ALTER //开发人员
- DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE //开发人员
- DQL语句 数据库查询语言: 查询数据 SELECT
- DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
三、MySQL的部署安装
官网地址
1. rpm自动化安装
以直接在官网下载rpm包yum源仓库,然后下载配置到自己机器上去,然后进行下载安装mysql
也可以直接下载好软件进行安装
1.1 设置内存 准备暗转环境
- 内存至少为2G
- 关闭防火墙和Selinux
# systemctl stop firewalld # 立即停止防火墙
# systemctl disable firewalld # 开机禁用防火墙
# setenforce 0 # 立即停止SELinux
# vim /etc/selinux/config SELINUX=disabled # 开机禁用SELinux
1.2 安装mysql服务器
访问国内mysql镜像站
USTC Open Source Software Mirrorhttps://mirrors.ustc.edu.cn/
下载软件包
下载yum包源
[root@localhost ~]# ls /etc/yum.repo.d/ [root@localhost ~]# yum install -y mysql80-community-release-el7-9.noarch.rpm [root@localhost ~]# ls /etc/yum.repo.d/ [root@localhost ~]# vim /etc/yum.repo.d/mysql-community.repo [root@localhost ~]# yum list | grep mysql [root@localhost ~]# ls /etc/yum.repo.d/
因为要安装5.7版本,默认安装的是8.0版本,所以修改配置文件
安装MySQL服务器
[root@localhost ~]# yum install -y mysql-community*
报错解决
解决方法:卸载冲突的软件百,再安装
[root@localhost ~]# yum remove -y mariadb-libs.x86_64
[root@localhost ~]# yum install -y mysql-community*
启动MySQL服务器
[root@localhost ~]#systemctl start mysqld
[root@localhost ~]#systemctl enable mysqld
[root@localhost ~]#systemctl status mysqld
查询MySQL服务器默认密码
如果没有查看到密码,原因可能是mysql没有启动成功。
[root@localhost ~]# grep 'password' /var/log/mysqld.log
# 注意:冒号和空格的后面,全都是密码
修改MySQL服务器密码
[root@localhost ~]# mysqladmin -uroot -p'es,W;ya(K1Th' password 'XunXun@123'
登录MySQL系统
[root@localhost ~]# mysql -uroot -p'XunXun@123'
2. 源码包安装
特点:
源码安装 与二进制(RPM)发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL 所做的调整将会更多更灵活一些。
因为通过源代码编译我们可以:
a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b) 根据不同的软件平台环境调整相关的编译参数;
c) 针对我们特定应用场景选择需要什么组件不需要什么组件;
d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;
e) 同一台主机上面可以安装多个MySQL;
f) 等等其他一些可以根据特定应用场景所作的各种调整。
在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;
准备编译环境
# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
安装MySQL
# 准备源码包
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
# tar xvf mysql-5.7.19.tar.gz
# cd mysql-5.7.19
[root@mysql3 mysql-5.7.19]# pwd /root/mysql-5.7.19
# mv ../boost_1_59_0.tar.gz .
[root@mysql3 mysql-5.7.19]# tar xf boost_1_59_0.tar.gz # 注意包的位置
配置
[root@mysql-5.7.17 ~]# cmake . \
-DWITH_BOOST=boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
# 常见错误
# -DWITH_BOOST=boost_1_59_0 如果没有提前准备,可以使用下面的参数自己装。 -DDOWNLOAD_BOOST=1
# -DWITH_READLINE=1 \ 5.6被移除
# 如果cmake失败,请将CMakeCache.txt缓存移除
编译
# make # 时间会很久,请耐心等待
安装
# make install
初始化
# cd /usr/local/mysql # 安装位置
# mkdir mysql-files
# chown -R mysql.mysql /usr/local/mysql # 注意目录名称
# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#会生产临时密码,在屏幕上 保存临时密码 o=d10aabtnEs
# /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data #建立MySQL配置文件my.cnf
# 备份原有配置文件
[root@localhost mysql]# mv /etc/my.cnf ~
# vim /etc/my.cnf
[root@mysql1 mysql]# vim /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data
开机启动MySQL
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# 添加mysql服务
# systemctl enable mysqld
# chkconfig mysqld on
# 开机自动启动mysql服务
# service mysqld start
# ps aux |grep mysqld