目录
一、MySQL数据库
一款深受欢迎的开源关系型数据库,遵守GPL协议,可以免费使用与修改
常用版本:MySQL-5.7
mysql是目前最流行的关系型数据库管理系统,也是在WEB应用方面最好的应用软件之一,而学习mysql操作对于我们学习mysql数据库是必不可少的。
Ⅰ、数据库的类型
(1)关系数据库
关系数据库结构是二维数据库表,二维表当中每个字段(列)用来描述对象的一个属性,每个记录(行)用来描述一个对象的信息,关系数据库写到哪里也就是存储在硬盘当中
读写系统就会受到的Io限制或者瓶颈,关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
优点:易于维护:都是使用表结构,格式一致;使用方便,SQL语言通用,可用于复杂查询;
复杂操作,支持sQL,可用于一个表以及多个表之间非常复杂的查询。
缺点:读写性能比较差,尤其是海量数据的高效率读写;固定的表结构,灵活度稍欠;高并发读写需求,传统关系型数据库来说,硬盘I/o是一个很大的瓶颈。
(2)非关系型数据库(NoSQL)
MongoDB 、 Redis(内存数据库/缓存数据库)K-V键值对、与之类似的Memcache,K-V键值对
redis-memecache对比:
相同点:存储高热数据(在内存中高速运行)
不同点:redis可以做持久化保存,可以存储对象
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。
优点:格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等;使用灵活,应用场景广泛,而关系型数据库则只支持基础类型;速度快,nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;高扩展性;成本低,nosql数据库部署简单,基本都是开源软件。
缺点:不提供sql支持,学习和使用成本较高;无事务处理;数据结构相对复杂,复杂查询方面稍欠。
Ⅱ、MySQL数据库的字符类型()
类型 | 说明 |
int | 整形(定义整数类型数据) |
float | 单精度浮点。4字节32位。准确到小数点后六位 |
double | 双精度浮点。8字节64位 |
char | 固定长度的字符类型,定义字符类数据,不足的空格补齐 |
varchar | 可变长度的字符类型 |
text | 文本 |
image | 图片 |
decimal(5,2) | 5个有效长度数字,小数点后面有2位,指定长度数组 |
二、MySQL-5.7的部署
Ⅰ、编译安装
如果linux系统中已经安装了mariadb数据量,则必须先将其删除
#查看
rpm -q mariadb
#删除
yum remove mariadb
MySQL官方站点:https://dev.mysql.com/
编译安装所需的编译器等,创建一个mysql用户管理
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
adduser -s /sbin/nologin mysql
对安装包进行解压缩,然后进行编译安装
tar -zxvf mysql-5.7.*.tar.gz -C /opt
cd ../mysql-5.7.*
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装路径(目录)
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定通信文件,连接数据库,通讯协议的载体
-DSYSCONFDIR=/etc \ #配置文件目录指向/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定pid目录文件
-DDEFAULT_CHARSET=utf8 \ #字符集设定
-DDEFAULT_COLLATION=utf8_general_ci \ #字符集设定
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #以下三行均为存储引擎ENGINE
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据存放位置
-DWITH_BOOST=boost \ #底层C++运营库 独立的表空间结构
-DWITH_SYSTEMD=1 #守护进程id 守护进程
make && make install
#权限管理
chown -R mysql:mysql /usr/local/mysql/
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 \
-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
Ⅱ、调整配置文件
[root@localhost mysql-5.7.20]# vi /etc/my.cnf
[root@localhost etc]# vim my.cnf
#删除原有内容,添加以下内容
[client] #client 用户程序
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql] #mysql 软件内容
port = 3306 #端口
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld] #以后对mysql配置时 更多的会针对于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 #PID文件目录
socket = /usr/local/mysql/mysql.sock #通讯文件
server-id = 1