一、MySQL介绍及编译安装
一、什么是数据?
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。
在计算机系统中,数据以二进制信息单元0,1的形式表示。
数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*
二、什么是数据库管理系统
DBMS(database management system)
三、数据库管理系统的种类
-
RDBMS
以多张二维表的方式来存储,又给多张表建立了一定的关系(关系型数据库)。 -
NoSQL
左边rdbms右边nosql 很多以json格式进行存储数据的(mogodb)
- RDMS与NoSQL对比
-
功能性对比
-
特点对比
-
关系型数据库(RDBMS)的特点:
- 二维表
- 典型产品Oracle传统企业,MySQL互联网企业
- 数据存取是通过SQL(Structured Query Language结构化查询语言)
- 最大特点数据安全性方面强(ACID)
非关系型数据库(NoSQL:Not only SQL)的特点:
- 不是否定关系型数据库,而是做关系型数据库的补充。
- 想做老大,先学会做老二。
时代特点对比:
-
web1.0时代
- 企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要nosql。
-
web2.0时代
- 核心是企业提供平台,用户参与提供内容,这个时代关系型数据库无法满足需求了。
-
2003NoSQL出现
- memcache的诞生,关注的点是性能,但是针对安全性能关注比较低,随着安全性能需求不断提升,所以有了redis。
-
redis的特点:
- 依然高性能高并发
- 数据持久化功能
- 支持多数据类型,主从复制和集群
- 管理不再使用SQL了
四、MySQL安装
官方网址:https://www.mysql.com
下载地址:https://downloads.mysql.com/archives/community/
5.6.40安装包地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.40.tar.gz
MySQL版本选择的潜规则:
5.6:GA(生命周期) 6-12个月 小版本是偶数
5.7:GA(生命周期) 6-12个月 小版本是偶数,选择5.7.17以上的版本(MGR:MySQL自带的高可用功能)
MySQL安装方式:
- rpm、yum安装:安装方便、安装速度快,无法定制
- 二进制:不需要安装,解压即可使用,不能定制功能
- 编译安装:
- 可定制,安装慢
- 四个步骤:
解压(tar)
生成(./configure)cmake gmake
编译(make)
安装(make install) - 5.5版本之前:tar ./configure make make install
- 5.5版本之后:cmake gmake
- 先编译,然后定制rpm包,制作yum仓库,然后yum安装:简单,速度快,可定制,比较复杂,制作时间极长
- 企业中选择的安装方式:
- 中小型企业:以上方式都可以,运维偏向编译,dba偏向二进制 运维也偏向二进制
- 大型企业:可以选择: 先编译然后定制rpm包,制作yum仓库,然后yum安装
源码安装方式:
# 1. 下载epel源
[root@dba-01 ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
# 2. 安装依赖
[root@dba-01 mysql-5.6.40]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc
# 3.解压MySQL源码包
[root@dba-01 mysql.app]# tar xf mysql-5.6.40.tar.gz
# 4. 进入源码包的目录
[root@dba-01 mysql.app]# cd mysql-5.6.40
# 5. 创建目录
[root@dba-01 mysql-5.6.40]# mkdir /application
# 6. 生成编译文件
[root@dba-01 mysql-5.6.40]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 -DMYSQL_DATADIR=/application/mysql-5.6.40/data -DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_ZLIB=bundled -DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLE_DOWNLOADS=1 -DWITH_DEBUG=0
# 7. 编译
[root@dba-01 mysql-5.6.40]# make
# 8. 安装
[root@dba-01 mysql-5.6.40]# make install
# 9. 创建MySQL用户
[root@dba-01 mysql-5.6.40]# useradd mysql -s /sbin/nologin -M
# 10. 做软连接: 方便后期升级
[root@dba-01 mysql-5.6.40]# ln -s /application/mysql-5.6.40/ /application/mysql
# 11. 进入其他目录
[root@dba-01 mysql-5.6.40]# cd /application/mysql/support-files
# 12. 拷贝MySQL配置文件
[root@dba-01 support-files]# cp my-default.cnf /etc/my.cnf
# 13. 拷贝启动脚本
[root@dba-01 support-files]# cp mysql.server /etc/init.d/mysqld
# 14. 进入初始化目录
[root@dba-01 support-files]# cd /application/mysql/scripts
# 15. 初始化MySQL
[root@dba-01 scripts]# ./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql
# 16. 创建socket文件所在目录
[root@dba-01 scripts]# mkdir /application/mysql-5.6.40/tmp
# 17. 授权MySQL服务目录
[root@dba-01 scripts]# chown -R mysql.mysql /application/mysql*
# 18. 添加环境变量
[root@dba-01 scripts]# vi /etc/profile.d/mysql.sh
export PATH=/application/mysql/bin/:$PATH
# 19. 加载环境变量
[root@dba-01 scripts]# source /etc/profile
# 20. 启动MySQL
[root@dba-01 scripts]# /etc/init.d/mysqld start
[root@dba-01 scripts]# mysql
# 生成编译文各参数的含义:
#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
#数据存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.38/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校验规则
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他额外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支持的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled \
#启用SSL库支持(安全套接层)
-DWITH_SSL=bundled \
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 \
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默认为禁用)
-DWITH_DEBUG=0
以上就是编译安装全部过程,不同的版本直接改相应的版本号就可以了