前面介绍了很多关于mysql的文章,下面主要介绍一下mysql8的源码编译安装

一 基本环境

[root@CentOS-7-x86-64-Minimal-1810 ~]# cd /usr/local/src/

[root@CentOS-7-x86-64-Minimal-1810 src]# cat /etc/redhat-release

CentOS Linux release 7.6. (Core)

[root@CentOS-7-x86-64-Minimal-1810 src]# uname -r

5.2.-.el7.elrepo.x86_64

二 准备

2.1 安装依赖包

[root@CentOS-7-x86-64-Minimal-1810 src]# yum -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel

2.2 下载包

[root@CentOS-7-x86-64-Minimal-1810 src]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.17.tar.gz

2.3 解压并创建用户和目录

[root@CentOS-7-x86-64-Minimal-1810 src]# tar -xf mysql-boost-8.0.17.tar.gz

[root@CentOS-7-x86-64-Minimal-1810 src]# cd mysql-8.0.17/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# groupadd mysql

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# useradd -r -g mysql -s /sbin/nologin mysql

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# mkdir -p /usr/local/mysql

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# chown -R mysql.mysql /usr/local/mysql/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# chown -R mysql.mysql /data/mysql/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# chmod -R 755 /data/mysql/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# chmod -R 755 /usr/local/mysql/

三 安装

3.1 编译安装

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

> -DMYSQL_DATADIR=/data/mysql \

> -DSYSCONFDIR=/etc \

> -DMYSQL_TCP_PORT=3306 \

> -DWITH_BOOST=~/mysql-8.0.12/boost \

> -DDEFAULT_CHARSET=utf8 \

> -DDEFAULT_COLLATION=utf8_general_ci \

> -DENABLED_LOCAL_INFILE=ON \

> -DWITH_INNODB_MEMCACHED=ON \

> -DWITH_INNOBASE_STORAGE_ENGINE=1 \

> -DWITH_FEDERATED_STORAGE_ENGINE=1 \

> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

> -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

-- Running cmake version 2.8.12.2

3.2 安装cmake 3.5以上版本

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# yum -y remove cmake

下载二进制包

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cd  /usr/local/src/

[root@CentOS-7-x86-64-Minimal-1810 src]# wget https://github.com/Kitware/CMake/releases/download/v3.15.3/cmake-3.15.3-Linux-x86_64.tar.gz

[root@CentOS-7-x86-64-Minimal-1810 src]# tar -xf cmake-3.15.3-Linux-x86_64.tar.g

[root@CentOS-7-x86-64-Minimal-1810 src]# cp -r cmake-3.15.3-Linux-x86_64  /usr/local/cmake

设置环境变量

[root@CentOS-7-x86-64-Minimal-1810 src]# vi /etc/profile

export CMAKE_PATH=/usr/local/cmake
export PATH=$PATH:$CMAKE_PATH/bin

[root@CentOS-7-x86-64-Minimal-1810 src]# source /etc/profile

[root@CentOS-7-x86-64-Minimal-1810 src]# cmake –version

[root@CentOS-7-x86-64-Minimal-1810 src]# cd mysql-8.0.17/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=~/mysql-8.0.12/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=~/mysql-8.0.12/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DFORCE_INSOURCE_BUILD=1

3.3 安装GCC高版本

下载源码包

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cd /usr/local/src/

[root@CentOS-7-x86-64-Minimal-1810 src]# wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-9.2.0/gcc-9.2.0.tar.gz

[root@CentOS-7-x86-64-Minimal-1810 src]# tar -xf gcc-9.2.0.tar.gz

[root@CentOS-7-x86-64-Minimal-1810 src]# cd gcc-9.2.0

[root@CentOS-7-x86-64-Minimal-1810 src]# ./contrib/download_prerequisites

-- :: URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 [2383840] -> "./gmp-6.1.0.tar.bz2" [1]
-- :: URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 [1279284] -> "./mpfr-3.1.4.tar.bz2" [2]
-- :: URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz [669925] -> "./mpc-1.0.3.tar.gz" [2]
-- :: URL: ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2 [1658291] -> "./isl-0.18.tar.bz2" [2]
gmp-6.1..tar.bz2: OK
mpfr-3.1..tar.bz2: OK
mpc-1.0..tar.gz: OK
isl-0.18.tar.bz2: OK
All prerequisites downloaded successfully.

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# ./configure --prefix=/usr/local/gcc  --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# time make -j4

花费时间比较久

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# make install

设置环境变量

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# echo  "export PATH=/usr/local/gcc/bin:$PATH" >> /etc/profile.d/gcc.sh

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# source /etc/profile.d/gcc.sh

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# ln -sv /usr/local/gcc/include/ /usr/include/gcc

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# ldconfig –v

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# ldconfig -p |grep gcc

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# gcc –v

[root@CentOS-7-x86-64-Minimal-1810 gcc-9.2.0]# cd /usr/local/src/mysql-8.0.17/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=~/mysql-8.0.12/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DFORCE_INSOURCE_BUILD=1

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# yum –y remove gcc

报错

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# ln -s /usr/local/gcc/bin/c++   /usr/bin/

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# ln -s /usr/local/gcc/bin/gcc  /usr/bin/cc

3.4 再次编译安装

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/src/mysql-8.0.17/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DFORCE_INSOURCE_BUILD=1

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]#make

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]#make Install

3.5 初始化数据库

[root@CentOS-7-x86-64-Minimal-1810 mysql-8.0.17]# cd /usr/local/mysql/bin/

[root@CentOS-7-x86-64-Minimal-1810 bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

[root@CentOS-7-x86-64-Minimal-1810 bin]# vi /etc/my.cnf

[client]
port=
socket=/tmp/mysql.sock
default-character-set=utf8
#user=root
#password=
[mysqld]
server-id=
#skip-grant-tables
port=
user=mysql
max_connections=
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8
default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log
[mysqldump]
quick
max_allowed_packet=16M

[root@CentOS-7-x86-64-Minimal-1810 bin]# echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

[root@CentOS-7-x86-64-Minimal-1810 bin]# source /etc/profile

[root@CentOS-7-x86-64-Minimal-1810 bin]# cp /usr/local/src/mysql-8.0.17/support-files/mysql.server /etc/init.d/mysqld

[root@CentOS-7-x86-64-Minimal-1810 bin]# vim /etc/init.d/mysqld

basedir=/usr/local/mysql

datadir=/data/mysql

[root@CentOS-7-x86-64-Minimal-1810 bin]# chmod +x /etc/init.d/mysqld

[root@CentOS-7-x86-64-Minimal-1810 bin]# /etc/init.d/mysqld start

3.6 登陆

可以无密码登录

[root@CentOS-7-x86-64-Minimal-1810 bin]# mysql -u root -p

数据库初步安装完成,后续在做其他实验

Centos7源码编译安装mysql8的更多相关文章

  1. 源码编译安装MySQL8.0

    源码编译安装MySQL8.0 0.前期准备条件 查看linux的版本 [root@mysql etc]# cat /etc/redhat-release CentOS Linux release 7. ...

  2. Centos7源码编译安装PHP7.2(生产环境)

    安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...

  3. centos7源码编译安装lamp/lnmp

    centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...

  4. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

  5. CentOS7 源码编译安装Nginx

    源码编译安装nginx     1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...

  6. 源码编译安装MySQL8.0.20

    1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...

  7. centos7源码编译安装Subversion 1.9.5

    svn是Subversion的简称,是一个开放源代码的版本控制系统.svn有两种运行方式:1.独立服务器(svn://xxx.xxx/xxx) 2.借助apache(http://svn.xxx.xx ...

  8. centos7 源码编译安装 php

    准备工作 下载 PHP 源码包并解压 $ wget https://www.php.net/distributions/php-7.2.19.tar.bz2 $ yum -y install bzip ...

  9. centos7 源码编译安装 nginx

    安装步骤 下载 nginx 源码包 官网 $ wget http://nginx.org/download/nginx-1.16.0.tar.gz 解压 nginx 压缩包 $ tar -zxvf n ...

随机推荐

  1. 关于 KiCad 画圆弧走线

    关于 KiCad 画圆弧走线 有很多关于 关于 KiCad 画圆弧走线的帖子. 最新进展是 V6 在开发中. 但是因为关于 DRC 问题,开发好像有难度. https://bugs.launchpad ...

  2. F4NNIU 的 KiCad EDA 技巧 (2019-05-09 更新)

    F4NNIU 的 KiCad EDA 技巧 已经慢慢切换到 KiCadEDA 上来画板,优点很多. 开源: 自动推挤: 无限的元件库: 强大的 3D 显示: 这里整理一下个人使用的技巧: 原理图 Ee ...

  3. 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google

    摘要: 作为此次Gartner报告中唯一上榜的中国科技公司,阿里云获得六个评判维度的最高分,排名第二 近日,知名调研机构Gartner发布了全球领先公共云厂商区块链服务能力报告,作为唯一上榜的中国科技 ...

  4. iOS 获取一个类的所有方法

    #import <objc/runtime.h> #import <objc/message.h> 需要导入运行时头文件和消息发送文件 - (void)runTests { u ...

  5. MapReduce数据流-输出

  6. 08Redis入门指南笔记(集群)

    即使使用哨兵,此时的 Redis 集群的每个数据库依然存有集群中的所有数据,从而导致集群的总数据存储量受限于所有节点中,内存最小的数据库节点,形成木桶效应. 对 Redis 进行水平扩容,在旧版Red ...

  7. 08查找满足条件的n个数

    第一节.寻找和为定值的两个数 题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字.要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出任意一对即可. 例如输 ...

  8. webkit浏览器下多行显示,有省略号效果

    多行显示情况 display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; ...

  9. java.lang.ClassCastException: com.sun.proxy.$Proxy6 cannot be cast to com.etc.service.serviceImpl.BankServiceImpl

    错误原因: java.lang.ClassCastException: com.sun.proxy.$Proxy6 cannot be cast to com.etc.service.serviceI ...

  10. 【t093】外星密码

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有了防护伞,并不能完全避免2012的灾难.地球防卫小队决定去求助外星种族的帮助.经过很长时间的努力,小 ...