目录
一、数据库概述
1.1数据
记录每个人的信息
1.2表
存放信息的集合
1.3数据库
表的集合,存储数据的仓库
总结:
数据库——>数据表——>数据
2.数据库管理系统(DBMS)
管理数据库的资源
数据库的建立和维护功能:建立数据库的结构、数据库的恢复
数据库的定义功能:定义数据的结构和信息格式
数据操作功能:数据查询和更新
数据库的运行管理功能:存取控制、数据库内部维护功能
数据库的通信功能:DBMS与其他软件系统之间通信(接收到其他软件的信号,回应他)
3.DBMS工作模式
1.接受应用程序的数据请求和处理请求
2.将用户的数据请求(高级指令)转换为复杂机器代码(底层指令)
3.实现对数据的操作中接受查询结果
4.从数据库的操作中接受查询结果
5.对查询结果进行处理(格式转换)
4.数据库系统原理
###数据通过应用程序(Tomcat);去请求DBMS系统;DBMS系统把数据转换为DB(MYSQL)能识别的语言(底层指令);DB去查询你要的用户和密码;
###DB返回查询的数据给DBMS;DBMS把结果转换为高级指令给数据;数据给应用程序;
###应用程序给Nginx;Nginx'给到用户
二、数据库发展史
1969年,第一代数据库系统问世;层次模型和网状型的数据库系统IMS
1970年,第二代数据库——关系数据库开始出现
1980年,第三年数据库——非关系数据库NoSQL(可以接收大量数据)+关系数据库SQL(无法接收大量数据)
###web——>redis——>mysql
###CPU——>缓存——>内存
###非关系数据库给关系数据库做一个缓冲
三、主流数据库
SQL Server(微软公司)
###图形化界面;简单;Oracle(甲骨文公司)
###主流平台;操作复杂DB2(IBM公司)
###主流平台;安全、完善MySQL(甲骨文公司收购)
###免费、开源、体积小PostgrSQL
四、关系型数据库和非关系型数据库
1.关系型数据库
常见的关系型数据库:MYSQL、Oracle
数据在硬盘上
关系数据库的结构是:二维表
二维表格:行+列
优点:便于维护、使用方便
缺点:速度慢、不灵活(表结构固定好了,数据必须和结构一样)
2.非关系数据库
常见非关系数据库:mongoDB、Redis
数据存在内存中
优点:读写速度快、海量数据存储、高扩展(#就是分布式处理)和高可用
缺点:数据结构复杂、数据写在内存中(电脑重启就没了)
不以关系模型为依据,不需要固定的表格式
分布式:分为多个通道处理,最后汇总
MYSQL数据库
开源关系型数据库
遵守GPL协议
特点:性能好、基于C/S架构、安全、开源
二、编译安装MYSQL
1.关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
hostnamectl set-hostname mysql
####修改主机名,方便操作
bash
2.安装mysql环境依赖包
yum install -y gcc gcc-c++ ncurses ncurses-devel bison cmake
安装结果
3.创建运行用户
useradd -M -s /sbin/nologin mysql
4.去opt下,下载安装包
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz
5.编译
cd mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
6.安装
make -j4
可以更改一下虚拟机 内核数,加快安装速度
make install
7.更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
看安装目录属主属组
看配置文件属主属组
8.修改mysql配置文件
vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
9.设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
10.初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
11.添加mysql系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
12.修改mysql登录密码
mysqladmin -u root -p password "abc123"
###给root账号设置密码为abc123,提示输入的是原始密码(为空)要求输入的是原密码直接回车即可
13.授权远程登录
mysql -u root -pabc123
14.查看数据库
show databases;
15.登录你想查看你的库
use mysql
16.查看表
show tables