1、数据库的基本概念:
数据库的组成
数据: 描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以“记录”形式按统一格式进行存储
表: 将不同的记录组织在一起,用来存储具体数据
数据库: 表的集合,是存储数据的仓库
以一定的组织方式存储的相互有关的数据集合
数据库的管理系统(DBMS):
是实现对数据库资源有效组织、管理和存取的系统软件
功能:数据库的建立和维护功能、数据定义功能、数据操控功能、数据库的运行管理功能、通信功能
数据库系统(DBS)
是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库
2、主流数据库介绍:
MySQL数据库介绍:
一款深受欢迎的开源关系型数据库 Oracle旗下的产品,遵守GPL协议,可以免费使用与修改
特点:
性能卓越、服务稳定 开源、无版权限制、成本低 多线程、多用户 基于C/S(客户端/服务器)架构 安全可靠
主流数据库介绍:
SQL Server (微软公司产品) Oracle (甲骨文公司产品) DB2 (IBM公司产品) MySQL(甲骨文公司收购)
面向Windows操作系统 面向所有主流平台 面向所有主流平台 免费、开源、体积小
简单、易用 安全、完善、操作复杂 大型、安全、完善
3、关系型非关系型数据库介绍:
关系型数据库: 硬盘中读写
a)关系数据库系统是基于关系模型的数据库系统
b)关系数据库的存储结构是二维表格
- 每一行称为一条记录,用来描述一个对象的信息
- 每一列称为一个字段,用来描述对象的一个属性
c)关系模型可用简单的"实体-关系-属性"来表示
实体 :也称为实例,对应现实世界中可区别与其他对象的“事件”或“事物” 如银行客户、银行账户等 关系 :实体集之间的对应关系称为联系,也称为关系 如银行客户和银行账户之间存在“储蓄”的关系 属性 :实体所具有的某一特性,一个实体可以有多个属性 如“银行客户”实体集中的每个实体均具有姓名、住址、电话等属性
非关系型数据库:
存储数据不以关系模型为依据,不需要固定的表格式,内存中读写 键值对
非关系型数据库的优点:
- 数据库可高并发读写
- 对海量数据高效率存储与访问
- 数据库具有高扩展性与高可用性
4、Mysql 安装方法:
将安装包拖至/opt目录下,编一个脚本文件,然后source执行脚本,等脚本执行完成,
即可使用mysql -u root -p点击回车即可进入。 本博主亲测 无修改100% 一键部署。(source执行否则会因为环境变量问题出现报错)。
#!/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" exit 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
5、Mysql 基本操作命令:
常用的数据类型:
查看当前服务器中的数据库:
SHOW DATABASES; #大小写不区分,分号“;”表示结束
查看数据库中包含的表:
USE 数据库名; SHOW TABLES;
查看表的结构(字段):
USE 数据库名; DESCRIBE [数据库名.]表名; 可缩写成:DESC 表名;