一、MySQL介绍及编译安装

一、什么是数据?

数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。

数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。

在计算机系统中,数据以二进制信息单元0,1的形式表示。

数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*

二、什么是数据库管理系统

DBMS(database management system)
image

三、数据库管理系统的种类

  • RDBMS
    以多张二维表的方式来存储,又给多张表建立了一定的关系(关系型数据库)。

  • NoSQL
    左边rdbms右边nosql 很多以json格式进行存储数据的(mogodb)

image

  • RDMS与NoSQL对比
    • 功能性对比
      image

    • 特点对比

关系型数据库(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安装方式:

  1. rpm、yum安装:安装方便、安装速度快,无法定制
  2. 二进制:不需要安装,解压即可使用,不能定制功能
  3. 编译安装:
    1. 可定制,安装慢
    2. 四个步骤:
      解压(tar)
      生成(./configure)cmake gmake
      编译(make)
      安装(make install)
    3. 5.5版本之前:tar ./configure make make install
    4. 5.5版本之后:cmake gmake
  4. 先编译,然后定制rpm包,制作yum仓库,然后yum安装:简单,速度快,可定制,比较复杂,制作时间极长
  5. 企业中选择的安装方式:
    1. 中小型企业:以上方式都可以,运维偏向编译,dba偏向二进制 运维也偏向二进制
    2. 大型企业:可以选择: 先编译然后定制rpm包,制作yum仓库,然后yum安装

源码安装方式:

image

# 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

以上就是编译安装全部过程,不同的版本直接改相应的版本号就可以了

posted @ 2021-11-18 23:31  锦书致南辞  阅读(104)  评论(0编辑  收藏  举报