前言:
而今小伙伴们对“centos7编译安装mysql”大体比较看重,姐妹们都想要了解一些“centos7编译安装mysql”的相关知识。那么小编在网络上搜集了一些对于“centos7编译安装mysql””的相关文章,希望姐妹们能喜欢,各位老铁们一起来学习一下吧!前言:本文主要为大家介绍如何在 PK 体系下的 CentOS 上编译安装 MySQL 5.7,请大家多多点赞、收藏、评论、关注哦![比心][比心][比心]
本文使用的操作系统环境为:
CentOS 版本:
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (AltArch)
Linux 内核版本:
# uname -r
4.14.0-115.el7a.0.1.aarch64
首先对系统进行更新:# yum update, 更新过程中需要校验 GPG key,确认无误则输入"y"继续。
更新完成后,即可正式安装需要的软件。
安装常用工具:
wget 下载工具:
# yum install wget
gcc 编译工具:
# yum install gcc gcc-c++ readline-devel zlib-devel
bzip2 解压缩工具:
# yum install bzip2
由于 CentOS 7 自带的系统镜像源不提供 MySQL 安装包,且提供的替代方案 MairaDB 5.5 版本也较低,MySQL 官方也未提供基于 arm 架构的二进制包,因此需要通过编译源代码方式进行安装。
1 更新系统自带的 gcc 版本
系统自带的 gcc 版本为 4.8.5,在编译 MySQL 源码时会报编译器内部错误,因此需要更新 gcc 版本至 7.3.0。
# gcc -v
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
我们通过编译源码方式安装 gcc 7.3.0,首先下载 gcc 7.3.0 源代码:
# wget
解压源码包:
# tar -zxf gcc-7.3.0.tar.gz
编译安装前的准备:
# mkdir -p /data/gcc 创建程序将要安装的目录。
# cd gcc-7.3.0进入源代码目录。
# ./contrib/download_prerequisites运行download_prerequisites脚本下载所需要的文件。
mkdir gcc-build-7.3.0 创建编译输出目录。
将需要的文件都复制进编译输出目录:
# cd gcc-build-7.3.0
# cp ../gmp-6.1.0.tar.bz2 ./
# cp ../mpfr-3.1.4.tar.bz2 ./
# cp ../mpc-1.0.3.tar.gz ./
# cp ../isl-0.16.1.tar.bz2 ./
复制完后,在当前目录执行:
# ../configure --prefix=/data/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib
参数解释:
--prefix=/data/gcc指定安装目录。
--enable-checking=release增加一些检查,也可以–-disable-checking在编译过程中不做检查。
--enable-languages=c,c++选择 gcc 支持的编程语言 c c++。
--disable-multilib取消多目标库编译(取消32位库编译)。
开始编译:# make -j2,时间较长,请耐心等待(测试环境2核 CPU 编译用时超过2小时)。
编译完成后,卸载旧版本 gcc:
检查已安装的 gcc 版本号:
# rpm -q gcc
# rpm -q gcc-c++
根据输出结果进行卸载:
# rpm -e gcc-c++-4.8.5-39.el7.aarch64
# rpm -e gcc-4.8.5-39.el7.aarch64
安装 gcc 7.3.0:
# make install
验证:
将安装目录的 bin 目录添加到环境变量:# export PATH=$PATH:/data/gcc/bin
运行# gcc -v,可以看到版本已经更新完成。
将环境变量语句加入到配置文件,否则只在当前窗口会话生效:# vi /etc/profile,在文件末尾加入一行:export PATH=$PATH:/data/gcc/bin,然后使用# source /etc/profile更新配置文件。
2 编译安装 MySQL 5.7
2.1 安装编译所需要的 boost 库
首先下载 boost 1.59 源代码:
# wget
解压源码包:
# tar -zxf boost_1_59_0.tar.gz
编译安装前的准备:
# mkdir -p /data/boost 创建程序将要安装的目录。
# cd boost_1_59_0进入源代码目录。
# ./bootstrap.sh编译前检查。
# ./b2 --prefix=/data/boost编译。
# ./b2 --prefix=/data/boost install安装。
将 boost lib 库目录环境变量语句加入到配置文件,否则只在当前窗口会话生效:# vi /etc/profile,在文件末尾加入一行:export PATH=$PATH:/data/boost/lib,然后使用# source /etc/profile更新配置文件。编辑动态链接库配置文件:# vi /etc/ld.so.conf,在末尾加上:/data/boost/lib,执行# ldconfig使改动生效。
2.1 编译安装 MySQL 5.7
首先下载 MySQL 5.7.19 源码包:
# wget
更换 gcc 的 lib 库,否则编译过程中可能报错。我们只需找到原来系统自带版本的gcc的lib库替换掉就可以,方法如下:
# find / -name "libstdc++.so*" //找出系统中存在的 lib 库文件。
# cd /usr/lib64 //进入系统 lib 库目录。
# cp libstdc++.so.6 ~/ //备份原来的库文件。
# cp /usr/lib64/libstdc++.so.6.0.19 ~/ //备份原来的库文件。
# rm -rf libstdc++.so.6 //删除原来的库文件。
# rm -rf libstdc++.so.6.0.19 //删除原来的库文件。
# cp /data/gcc/lib64/libstdc++.so.6 ./ //从之前编译安装好的 gcc 7.3.0 目录复制库文件。
# cp /data/gcc/lib64/libstdc++.so.6.0.24 ./ //从之前编译安装好的 gcc 7.3.0 目录复制库文件。
编译安装前的准备:
# mkdir -p /data/mysql 创建程序将要安装的目录。
# mkdir -p /data/mysql/data创建数据存放目录。
# useradd mysql创建 mysql 用户。
# chown -R mysql:mysql /data/mysql/赋予用户目录权限。
# tar zxf mysql-boost-5.7.19.tar.gz解压源代码包。
# cd mysql-5.7.19进入安装目录。
安装编译所需要的依赖软件包:
# yum -y install make cmake bison bison-devel ncurses ncurses-devel libaio-devel autoconf automake perl-Time-HiRes libatomic
编译配置:
# CC=/data/gcc/bin/gcc CXX=/data/gcc/bin/g++ cmake . -DCMAKE_INSTALL_PREFIX=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 -DWITH_BOOST=boost
开始编译:make -j2
编译过程中可能遇到错误:
error: prctl was not declared in this scope
需要修改源代码mysql-5.7.19/sql/mysqld.cc,在文件前面部分加入以下内容:
#ifdef PR_SET_DUMPABLE
#include
#endif
编译完成后安装:# make install
创建my.cnf配置文件:
# cd /etc
# touch my.cnf
# vi my.cnf
配置文件示例如下:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
###############################基础设置######################################
#Mysql服务的唯一编号 每个mysql服务Id需唯一server-id = 1
#服务端口号 默认3306
port = 3306
#mysql安装根目录
basedir = /data/mysql
#mysql数据文件所在位置
datadir = /data/mysql/data
#临时目录 比如load data infile会用到
tmpdir = /tmp
#设置socke文件所在目录
socket = /tmp/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
根据配置文件的内容创建 mysqld.log 和 mysqld.pid 文件并赋予 mysql 用户权限:
# mkdir /var/run/mysqld
# mkdir /var/log/mysqld
# cd /var/run/mysqld
# touch mysqld.pid
# cd /var/log/mysqld
# touch mysqld.log
# chown -R mysql:mysql /var/log/mysqld
# chown -R mysql:mysql /var/run/mysqld
初始化数据库:
# /data/mysql/bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data --lc_messages_dir=/data/mysql/share --lc_messages=en_US
记住创建的 MySQL 数据库 root 用户的随机密码。启动 MySQL:
# cd /data/mysql
# ./support-files/mysql.server start
使用 root 密码登录数据库:
# ./mysql -uroot -p -S /tmp/mysql.sock
作者:李凌
更多干货尽在【中国信创服务社区】
标签: #centos7编译安装mysql