Centos7源码编译安装mysql8
前面介绍了很多关于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的更多相关文章
- 源码编译安装MySQL8.0
源码编译安装MySQL8.0 0.前期准备条件 查看linux的版本 [root@mysql etc]# cat /etc/redhat-release CentOS Linux release 7. ...
- Centos7源码编译安装PHP7.2(生产环境)
安装PHP依赖包,否则在编译的过程中可能会出现各种报错 # Centos 安装epel-release源并将系统包更新到最新版本 $ yum install epel-release-y $ yum ...
- centos7源码编译安装lamp/lnmp
centos7源码编译安装lamp/lnmp 进程:是包工头(相当于是个门,只管开门关门,不管门内的事儿) 线程:是各种工种(cpu调度的是线程) 进程 是一件事情, 线程 是 同一个时间范围内 同时 ...
- centos7 源码编译安装TensorFlow CPU 版本
一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...
- CentOS7 源码编译安装Nginx
源码编译安装nginx 1.下载nginx源码包(这里以nginx-1.18.0为例) wget http://nginx.org/download/nginx-1.18.0.tar.gz 2 ...
- 源码编译安装MySQL8.0.20
1 概述 本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装 2 源码编译安装的相关知识 2.1 make与configure make ...
- centos7源码编译安装Subversion 1.9.5
svn是Subversion的简称,是一个开放源代码的版本控制系统.svn有两种运行方式:1.独立服务器(svn://xxx.xxx/xxx) 2.借助apache(http://svn.xxx.xx ...
- centos7 源码编译安装 php
准备工作 下载 PHP 源码包并解压 $ wget https://www.php.net/distributions/php-7.2.19.tar.bz2 $ yum -y install bzip ...
- centos7 源码编译安装 nginx
安装步骤 下载 nginx 源码包 官网 $ wget http://nginx.org/download/nginx-1.16.0.tar.gz 解压 nginx 压缩包 $ tar -zxvf n ...
随机推荐
- Audio Session Programming Guide
http://www.cocoachina.com/ios/20150615/12119.html
- 最长公共子序列(LCS)、最长递增子序列(LIS)、最长递增公共子序列(LICS)
最长公共子序列(LCS) [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字 ...
- 输出Excel文件
/** * * 功能描述: <br> * 〈功能详细描述〉输出excle * * @param titles 标题 * @param contents 内容 * @param fileNa ...
- TensorFlow 池化层
在 TensorFlow 中使用池化层 在下面的练习中,你需要设定池化层的大小,strides,以及相应的 padding.你可以参考 tf.nn.max_pool().Padding 与卷积 pad ...
- Knative Eventing 中如何实现 Registry 事件注册机制
摘要: 在最新的 Knative Eventing 0.6 版本中新增了 Registry 特性, 为什么要增加这个特性, 该特性是如何实现的.针对这些问题,希望通过本篇文章给出答案. 背景 作为事件 ...
- 利用伪类选择器与better-scroll的on事件所完成的上拉加载
之前给大家分享过一篇上拉加载 利用了better-scroll的pullUpDown 和DOM元素的删除添加 感觉那样不太好 今天给大家分享一个不同的上拉加载思想 代码如下 class List { ...
- LightOJ 1269 Consecutive Sum (Trie树)
Jan's LightOJ :: Problem 1269 - Consecutive Sum 题意是,求给定序列的中,子序列最大最小的抑或和. 做法就是用一棵Trie树,记录数的每一位是0还是1.查 ...
- Helm V3 新版本发布
Helm v3.0.0 Alpha 1 is coming! Helm 作为 Kubernetes 体系的包管理工具,已经逐渐成为了事实上的应用分发标准.根据 2018 年 CNCF 的一项云原生用户 ...
- laravel 实现微博第三方登陆
https://blog.csdn.net/a12541254/article/details/79415550 1.安装 composer require socialiteproviders/we ...
- vue项目配置同一局域网可使用ip访问
1.检查 package.json文件,scripts.dev设置 host改成 "0.0.0.0" 2.config文件中找到 index.js 文件的host改成 " ...