数据库基本概念

数据库基本概念

  • 一、数据库的基本概念
    • 1.1 数据库的组成
    • 1.2 数据库的管理系统(DBMS)
    • 1.3 数据库系统(DBS)
      • 1.3.1 当今主流数据库
    • 1.4 关系型数据库介绍
    • 1.5 非关系型数据库介绍
    • 1.6 MySQL数据库介绍
  • 二、编译安装MySQL

一、数据库的基本概念

1.1 数据库的组成

数据:描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录”形式按统一格式进行存储

表:将不同的记录组织在一起,用来存储具体数据

数据库: 表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合

1.2 数据库的管理系统(DBMS)

是实现对数据库资源有效组织、管理和存取的系统软件
功能:数据库的建立和维护功能、数据定义功能、数据操控功能、数据库的运行管理功能、通信功能

1.3 数据库系统(DBS)

是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库

1.3.1 当今主流数据库

SQL Server (微软公司产品)
面向Windows操作系统
简单、易用

Oracle (甲骨文公司产品)
面向所有主流平台
安全、完善、操作复杂

DB2 (IBM公司产品)
面向所有主流平台
大型、安全、完善

MySQL (甲骨文公司收购)
免费、开源、体积小

1.4 关系型数据库介绍

1、关系数据库系统是基于关系模型的数据库系统

2、关系模型的数据结构使用简单易懂的二维数据表
  每一行称为一条记录,用来描述一个对象的信息
  每一行称为一个字段,用来描述对象的一个属性

3、关系模型可用简单的"实体-关系-属性"来表示
 1、实体
 也称为实例,对应现实世界中可区别与其他对象的“事件”或“事物”
 如银行客户、银行账户等
 2、关系
 实体集之间的对应关系称为联系,也称为关系
 如银行客户和银行账户之间存在“储蓄”的关系
 3、属性
 实体所具有的某一特性,一个实体可以有多个属性
 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性

1.5 非关系型数据库介绍

非关系数据库也称为NoSQL (Not Only SQL)
 存储数据不以关系模型为依据,不需要固定的表格式

非关系型数据库的优点
 1、数据库可高并发读写
 2、对海量数据高效率存储与访问
 3、数据库具有高扩展性与高可用性

1.6 MySQL数据库介绍

一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改

特点
 性能卓越、服务稳定
 开源、无版权限制、成本低
 多线程、多用户
 基于C/S(客户端/服务器)架构
 安全可靠

二、编译安装MySQL

1、把MySQL安装包拉到/opt目录下
2、编译安装MySQL
我们这里以用的是一键脚本部署安装MySQL

#!/bin/bash
echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式===== \033[0m"
ping -c1 -W1 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then echo -e "\033[31m 检测当前为NAT模式,为您配置在线yum源 \033[0m"
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null

yum clean all &> /dev/null
yum list &> /dev/null
echo -e "\033[31m 在线源已配置完成 \033[0m"

else
echo -e "\033[31m 检测当前为仅主机模式,为您配置本地yum源 \033[0m"
mount /dev/sr0 /mnt &> /dev/null
cd /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

echo '[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
yum clean all &> /dev/null
yum makecache &> /dev/null

df -h | grep "/mnt" 
if [ $? -ne 0 ];then
echo -e "\033[31m 检测当前为仅主机模式,但光盘未连接! \033[0m"
else
echo -e "\033[31m 本地yum源已配置完成 \033[0m"
fi
fi

#关闭系统防火墙和安全机制
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

echo -e "\033[31m 检查安装包是否正确,请耐心等待 \033[0m"
ls /opt | egrep "^mysql-boost-5.7.20.tar.gz$"
if [ $? -eq 0 ];then
echo -e "\033[31m 接下来进入正式配置,请耐心等待 \033[0m"
else
echo -e "\033[31m 请准备正确安装包mysql-boost-5.7.20.tar.gz \033[0m"
break
fi


#安装Mysql环境依赖包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake \
gcc \
gcc-c++ \
make

#创建程序用户,便于准确控制访问用户
useradd -M -s /sbin/nologin  mysql

#编译安装
cd /opt
tar xzvf mysql-boost-5.7.20.tar.gz -C /opt

cd /opt/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

#编译及安装
make && make install

#修改mysql 配置文件
echo '[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' > /etc/my.cnf


#更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

#设置路径环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib">> /etc/profile	
source /etc/profile

#初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

#添加mysqld系统服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ 


systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

你可能感兴趣的:(数据库应用,数据库)