MySQL数据库介绍
- MySQL是一款深受欢迎的开源关系型数据库
- Oracle旗下的产品
- 遵守GPL协议,可以免费试用与修改
- 特点
① 性能卓越、服务稳定
② 开源、无版权限制、成本低
③ 多线程、多用户
④ 基于C/S(客户端/服务端)架构
⑤ 安全可靠
数据库的基本概念
数据
- 描述事务的符号记录称为数据
- 包括数字,文字,图形,图像,声音,档案等
- 以“记录”形式按统一的格式进行存储
表
- 将不同的记录组织在一起,就形成了“表”
- 是用来存储具体数据的
数据库
- 数据库就是表的集合,是存储数据的仓库
- 以一定的组织方式存储的相互有关的数据
① 数据库作用:数据的持久化保存,高可靠,高可用,数据的快速提取
② 数据库存储类型:关系型数据库 非关系形数据库
关系型数据库:存储的是数值,字符,字符串,布尔值等,
③ 非关系型数据库:存储的是图片,视频,语音等
关系形数据库
mysql(oracle公司)、sql server(微软公司)、access(微软公司office),oracle(oracle公司)、db2(IBM公司),sybase(sybase公司)
④ 非关系型数据库NOSQL
MongoDB redis (内存数据库、缓存数据库)K-V key-valus 变量名-值
memcache (内存数据库、缓存数据库)K-V键值对
相同点:存储高热数据库
不同点:redis可以做持久化保存,可以储存对象
一、关系形数据库
- 关系数据库系统是基于关系模型的数据库系统,他的基本概念来自于关系模型
- 关系模型建立在关系代数的理论基础上,数据结构使用简单易懂的二维数据表,可以用简单的"实体-关系"图来直接表示
- E-R图中包含了实体、关系和属性三个要素
实体
- 也称为实列,对应现实世界中可区别于其他对象的“事+ 件”或“事务”,如银行客户、银行账户等
属性
- 实体所具有的某一特性,一个实体可以有多个属性。例如,“银行客户”实体集中的每个实体均具有姓名、地址、电话等属性
联系
- 实体集之间的对应关系称为联系,也称为关系。例如,银行客户和银行账户之间的存在“储蓄”的关系
- 所有实体及实体之间联关系数据库
关系数据库
- 关系数据库的存储结构是二维表格,反映事物及其联系的数据是以表格形式保存的
- 在每个二维表格中,每一行称为一条记录,用来描述一个对象的信息;每一个称为一个字段,用来描述对象的一个属性
二、非关系数据库介绍
- 非关系数据库也被称作NoSQL,存储数据不以关系模型为依据,不需要固定的表格式
- 非关系型数据库作为关系数据库的一个补充,在日益快速发展的网站时代,发挥着高效与高性能
- 非关系型数据库的优点
① 数据库高并发读写的需求
② 对海量数据库高效的存储与访问
③ 数据库的高扩展性与高可用性的需求
非关系型数据库存储方式
- 键-值方式,以键为依据的存储、删、改数据
- 列存储,将相关的数据存储在列族中
- 文档的方式,数据库由一系列数据项组成,每个数据项都有名称与对应的值
- 图形方式、实体为顶点,关系为边,数据保存为一个图形
- 非关系数据库产品
r+ edis也是一个以key-valus方式存储数据库,数据库也是保存在内存中,但会定期将数据写入磁盘中 - 相对于Memcached有以下特点
① 支持内存缓存
② 支持持久化
③ 数据类型更多
④ 支持集群、分布式
⑤ 支持队列
安装mysql
#安装环境
yum install gcc gcc-c++ ncurses ncurses-devel bison cmake -y
#添加程序形用户
useradd -s /sbin/nologin mysql
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/ c++运行库
#重命名
cd /usr/local/
mv boost_1_59_0/ boost
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_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=/usr/local/boost \
-DWITH_SYSTEMD=1
#添加权限
chown -R mysql:mysql /usr/local/mysql/
#配置文件
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
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
server-id = 1
#给my.cnf添加权限
chown mysql:mysql /etc/my.cnf
#声明环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
cd /usr/local/mysql/
#重新编译
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#重启mysql
systemctl daemon-reload
systemctl start mysqld.service
来源:CSDN
作者:我本善良3000
链接:https://blog.csdn.net/weixin_45693462/article/details/103817020