Cloud Computing Cloud Computing
  • 专题推荐
  • Exchange
  • 服务器
    • Windows
    • Linux
  • 虚拟化
    • Citrix
    • Xen
    • Vmware
    • Kvm
    • Hyper-v
  • 超融合
    • Nutanix
  • 存储
    • Open-E存储
    • FCoE存储
    • FC SAN存储
    • NFS存储
    • iSCSI SAN存储
  • 数据库
    • Oracle
    • Microsoft SQL Server
  • Kubernetes
  • 监控系统
    • Zabbix
首页 › 监控系统 › Zabbix › 【Zabbix学习笔记】六、LNMP之Mysql8.0.18源码编译安装

【Zabbix学习笔记】六、LNMP之Mysql8.0.18源码编译安装

weimei
1年前Zabbix
770 0 0

Mysql 数据库
是一种关系型数据库管理软件,关系型数据库特点是将数据库保存在不同的二维表(Excel)中,并且将这些表放入不同的数据库中,而不是把所有数据统一放在一个大仓库里,这样的设计增加了Mysql的读取速度,灵活性和可管理性也得到了很大提高。访问及管理Mysql数据库的最常用标准化语言为SQL结构化查询语言。

Mysql官网:https://www.mysql.com/

源码安装mysql,其中两个版本对编译环境有要求

1. mysql从5.5版本开始,不再使用./configure编译,而是使用cmake编译器。

2. mysql从8.0.16版本开始,要求cmake的版本是cmake3以上

3. centos7.6默认安装的是cmake2.8.12.2和gcc4.8.5,这是为考虑向下兼容centos6.2及稳定性,但对编辑安装mysql8.0.16会形成阻碍,所以安装前建议升级cmake到cmake3以上.

环境设置

1.关闭selinux

vi /etc/selinux/config
//修改为
SELINUX=disabled

2.通过 rpm -qa | grep mariadb 命令查看 mariadb 的安装包

【Zabbix学习笔记】六、LNMP之Mysql8.0.18源码编译安装-Cloud Computing

3.通过 rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 –nodeps 命令卸载mariadb

4.通过 rpm -qa | grep mariadb 命令再次查看 mariadb 的安装包

安装源码准备

gmp-6.1.2.tar.xz,mpfr-4.0.2.tar.gz,mpc-1.1.0.tar.gz,gcc-9.2.0.tar.gz,cmake-3.15.2.tar.gz,mysql-boost-8.0.18.tar.gz,

源码下载

编译安装GCC9.2

1下载安装包,可以去GNU网站上下载你想要的版本:http://ftp.gnu.org/gnu/gcc/

安装依赖

yum -y install epel-release
yum -y group install "Development Tools"
MYsql依赖:
yum -y install ncurses-devel openssl openssl-devel bison

2. 安装gcc源码编译依赖 ,先编译gmp->mpfr->mpc,编译: gmp-6.1.2

cd  /usr/local/src/
tar -xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp-6.1.2
make -j $(nproc)
make install
cd ../

3. 编译:mpfr-4.0.2

tar -xvf mpfr-4.0.2.tar.gz
cd mpfr-4.0.2
./configure --prefix=/usr/local/mpfr-4.0.2 --with-gmp=/usr/local/gmp-6.1.2
make -j $(nproc)
make install
cd ../

4.编译:mpc-1.1.0

tar -xvf mpc-1.1.0.tar.gz
cd mpc-1.1.0
./configure --prefix=/usr/local/mpc-1.1.0 --with-mpfr=/usr/local/mpfr-4.0.2  --with-gmp=/usr/local/gmp-6.1.2
make -j $(nproc)
make install
# 把mpfr lib 加入 ld.so.conf 不然gcc 编译报错
echo /usr/local/mpfr-4.0.2/lib  >> /etc/ld.so.conf
ldconfig

5. 编译安装gcc

cd /usr/local/src/
tar -xvf gcc-9.2.0.tar.gz
cd gcc-9.2.0
./configure --prefix=/usr/local/gcc-9.2.0 \
                  -enable-threads=posix \
                  -disable-checking \
                  -disable-multilib \
                  -enable-languages=c,c++ \
                  --with-gmp=/usr/local/gmp-6.1.2 \
                  --with-mpfr=/usr/local/mpfr-4.0.2 \
                  --with-mpc=/usr/local/mpc-1.1.0 \
                  --with-tune=generic \
                  --with-arch_32=x86-64
make -j $(nproc)
make install -j $(nproc)

###备份旧 gcc 可执行文件
 mv /usr/bin/gcc /usr/bin/gcc.old
 mv /usr/bin/g++ /usr/bin/g++.old
 mv /usr/bin/c++ /usr/bin/c++.old
 mv /usr/bin/cpp /usr/bin/cpp.old
 mv /usr/bin/gcov /usr/bin/gcov.old
### 创建最新gcc 执行文件软链
 ln -sf /usr/local/gcc-9.2.0/bin/* /usr/bin/
### 删除lib64 目录下.py 文件不然ldconfig 报错
 rm -rf /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27-gdb.py
 echo /usr/local/gcc-9.2.0/lib64 >> /etc/ld.so.conf
 ldconfig
### 复制libstdc++.so.6.0.27  /lib64/
 cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6.0.27 /lib64/
###创建软链 libstdc++.so.6
 cd /lib64
 ln  -sf libstdc++.so.6.0.27 libstdc++.so.6
### 查看是否最新版本
 strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

编译安装cmake3.15.2

cd /usr/local/src
tar zxf cmake-3.15.2.tar.gz
cd cmake-3.15.2
./configure --prefix=/usr/local/cmake
make
make install

–prefix 参数是配置cmake的安装目录

做cmake命令软连接,查看cmake版本

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake
cmake --version

编译安装mysql8.0.18

1.目录设置

 mkdir /usr/local/mysql/{data,tmp,logs} -p
 mkdir -p /usr/local/mysql/logs/{mysqld,backup_mysqld}

2. 创建mysql用户,授权

useradd mysql -s /sbin/nologin -M
chown -R mysql:mysql /usr/local

3.进入 /usr/local/src 目录

cd /usr/local/src

4. mysql官网下载mysql-8.0.18,上传MySQL-8.0.18并解压

rz -ary --o-sync
tar -zxvf mysql-boost-8.0.18.tar.gz
yum -y install cmake3
cd mysql-8.0.18

5. 上传boost_1_70_0.tar.gz 到/root/mysql-8.0.18/boost/boost_1_70_0目录或者自动下载

6. 编译安装

cmake3 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNODB_MEMCACHED=ON \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/root/mysql-8.0.18/boost/boost_1_70_0 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITHOUT_CSV_STORAGE_ENGINE=1 \
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
-DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_DEBUG=1 \
-DCMAKE_CXX_COMPILER=/usr/local/gcc-9.2.0/bin/g++ \
-DCMAKE_C_COMPILER=/usr/local/gcc-9.2.0/bin/gcc
make
make install

编译参数描述

  • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql:MySQL安装的根目录
  • -DMYSQL_DATADIR=/data/mysql:数据文件所存放的目录
  • -DSYSCONFDIR=/etc :MySQL配置文件所在目录
  • -DMYSQL_USER=mysql:MySQL服务的用户名
  • -DWITH_MYISAM_STORAGE_ENGINE=1:安装MyISAM引擎
  • -DWITH_INNOBASE_STORAGE_ENGINE=1:安装InnoDB引擎
  • -DWITH_ARCHIVE_STORAGE_ENGINE=1:安装Archive引擎
  • -DWITH_MEMORY_STORAGE_ENGINE=1:安装Memory引擎
  • -DWITH_FEDERATED_STORAGE_ENGINE=1:安装Federated引擎
  • -DWITH_PARTITION_STORAGE_ENGINE=1:安装Partition引擎
  • -DWITH_READLINE=1:MySQL的readline library
  • -DMYSQL_UNIX_ADDR=/tmp/mysql.sock:sock文件的路径
  • -DMYSQL_TCP_PORT=3306 :MySQL的监听端口
  • -DENABLED_LOCAL_INFILE=1:启用加载本地数据
  • -DENABLE_DOWNLOADS=1:编译时允许自主下载相关文件
  • -DEXTRA_CHARSETS=all :使MySQL支持所有的扩展字符
  • -DDEFAULT_CHARSET=utf8mb4:设置默认字符集为utf8mb4
  • -DDEFAULT_COLLATION=utf8mb4_general_ci:设置默认字符校对
  • -DWITH_DEBUG=0:禁用调试模式
  • -DMYSQL_MAINTAINER_MODE=0:是否启用mysql维护器特定的开发环境
  • -DDOWNLOAD_BOOST=1:允许在线更新boost库
  • -DWITH_BOOST=../boost:指定boost安装路径

提示错误1:

cmake问题CMake Error:Could not find CMAKE_ROOT!!!

core dumped的问题,只要一条命令就可以解决:hash -r
再运行cmake –version即可显示cmake版本信息

提示错误2:

Mysql问题Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

1、在根目录输命令find / -name CMakeCache.txt
2、删除mysql下的CMakeCache.txt
3、缺少ncurses-devel包,yum install -y ncurses-devel

提示错误3:

collect2: 错误:ld 返回 1

删除mysql下的CMakeCache.txt

7.拷贝到启动脚本并添加执行权限

cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld

8.mysql环境变量配置

export PATH=$PATH:/usr/local/mysql/bin:
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile

10. 使环境变量生效

source /etc/profile

11.初始化&启动数据库

#编辑配置文件
vi /data/conf/my.cnf
#建立软链接
ln -s /data/conf/my.cnf /etc/my.cnf
#初始化数据库
mysqld --defaults-file=/etc/my.cnf --initialize-insecure &
#启动数据库
/etc/init.d/mysqld start
#登陆后修改密码
mysql
alter user root@localhost identified by 'xxx';
0
本文系作者 @weimei 原创发布在 Cloud Computing。未经许可,禁止转载。
CentOS7编译安装gcc9.2.0版本
上一篇
CentOS 8安装MySQL8.0.22图文教程
下一篇
评论 (0)
再想想
赞助一下
相关文章
【Zabbix学习笔记】五、LNMP之PHP7.4.1源码编译安装
【Zabbix学习笔记】四、LNMP之Nginx1.16.1服务器编译安装
【Zabbix学习笔记】三、zabbix软硬件环境需求
【Zabbix学习笔记】二、zabbix原理及架构详解
云计算资源和交流中心

Cloud Computing是一个向访客介绍虚拟化、云存储、服务器等信息技术的网站,旨在为有提升个人技术能力的访客们提供一个信息获取以及交流的平台。网站开辟了多个特色栏目,精心编辑每一篇文章。

分类目录
服务器 Windows Linux 虚拟化 Xen Vmware Kvm Hyper-v 超融合 Nutanix 存储 NFS存储 iSCSI SAN存储 数据库 Microsoft SQL Server
友情链接
服务器 Windows Linux 虚拟化 Xen Vmware Kvm Hyper-v 超融合 Nutanix 存储 NFS存储 iSCSI SAN存储 数据库 Microsoft SQL Server
Copyright © 2019-2021 Cloud Computing. Designed by nicetheme. 闽ICP备16012274号-8
  • 专题推荐
  • Exchange
  • 服务器
    • Windows
    • Linux
  • 虚拟化
    • Citrix
    • Xen
    • Vmware
    • Kvm
    • Hyper-v
  • 超融合
    • Nutanix
  • 存储
    • Open-E存储
    • FCoE存储
    • FC SAN存储
    • NFS存储
    • iSCSI SAN存储
  • 数据库
    • Oracle
    • Microsoft SQL Server
  • Kubernetes
  • 监控系统
    • Zabbix
热门搜索
  • 36
  • 35
  • 38
  • 37
weimei
"那些听不见音乐的人以为跳舞的人疯了。"——尼采
92 文章
3 评论
176 喜欢
  • 0
  • 0
  • Top