CentOS7 安装 MySQL8

本文详细介绍了如何在CentOS7上安装MySQL8.0.20,包括安装依赖、配置开发环境、编译安装GCC及cmake,并提供了解决常见错误的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CentOS7安装MySQL8

安装说明

  • CentOS 版本:CentOS7.4

  • MySQL 版本:MySQL8.0.20

  • 使用 root 用户

  • 采用源码编译的方法安装 文件放在目录:/usr/local/src

cd /usr/local/src

安装依赖

安装必备环境

yum groupinstall "Development Tools"
yum -y install wget glibc-static libstdc++-static ncurses ncurses-devel libaio-devel openssl openssl-devel make automake

安装GCC5.4

首先使用 wget 下载源码 这里有两个下载路径 一个是日本的 一个是美国的 具体用哪个 就看哪个快吧

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-5.4.0/gcc-5.4.0.tar.bz2
wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2

然后解压

tar -jxvf gcc-5.4.0.tar.bz2
cd gcc-5.4.0

下载依赖文件

./contrib/download_prerequisites

编译安装 慢慢等吧 贼慢

mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
/usr/local/src/gcc-5.4.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install

查看 gcc 版本

gcc -v

如果还是老版本则移除老版本 gcc 添加新版本的软连接

cd /usr/bin/
mv gcc gcc_back
mv g++ g++_back
ln -s /usr/local/bin/gcc gcc
ln -s /usr/local/bin/g++ g++

安装cmake3.5.2

下载源码

wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

解压

tar -zxvf cmake-3.5.2.tar.gz
cd cmake-3.5.2

编译安装

./bootstrap
gmake
gmake install

查看版本

cmake --version

安装MySQL8.0.20

下载MySQL8.0.20

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.20.tar.gz

解压

tar -zxvf mysql-boost-8.0.20.tar.gz
cd mysql-8.0.20

为MySQL创建单独的用户和目录

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
mkdir -p /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql.mysql /usr/local/mysql/
chown -R mysql.mysql /data/mysql/
chmod -R 755 /data/mysql/
chmod -R 755 /usr/local/mysql/

cmake

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_BOOST=~/mysql-8.0.20/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

编译安装

make
make install

初始化数据库

cd /usr/local/mysql/bin/
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
vim /etc/my.cnf

[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8
#user=root
#password=onlyCHINA123
[mysqld]
server-id=1
#skip-grant-tables
port=3306
user=mysql
max_connections=200
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

echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile
cp /usr/local/src/mysql-8.0.20/support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld

basedir=/usr/local/mysql
datadir=/data/mysql

chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start

登录

mysql -u root -p

设置开机启动

systemctl enable mysqld

总结

安装 MySQL8 首先需要注意的是 cmake 的版本要求 3.5.1 或以上,然后 GCC 的版本需要 5.3 或以上,但 CentOS7 默认的 cmake 版本是 2.8,GCC 版本是4.8,所以需要安装新版的 cmake 和 GCC 才可以安装 MySQL8。其余就是安装 GCC 需要的时间贼长,最起码一个多小时,需要耐心等待。要是下载文件的速度慢,可以在自己电脑下好再 scp 到服务器。如果大家安装的时候遇到了什么错误,请解决后记录下来。

错误集合

cmake 报错 提示 需要 -DDOWNLOAD_BOOST=1

在 cmake 语句后加上 -DDOWNLOAD_BOOST=1

cmake 报错 提示 Download failed, error: 1;“Unsupported protocol”

CMake Error at cmake/boost.cmake:229 (MESSAGE):
You can try downloading
https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz
manually using curl/wget or a similar tool

cd /root/mysql-8.0.20/boost
wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz

手动下载下来就好了

make 报错 c++: 错误:unrecognized command line option ‘-std=c++14’

看一下自己的 GCC 版本是不是 5.4

如果是 则需要指定 g++ 路径 重新 cmake 加上 -DCMAKE_CXX_COMPILER=/usr/local/bin/g++

安装新版本 GCC 并临时提升 GCC 版本(不想升级 GCC 的可以尝试 但下面的错误怕是不太好弄 不推荐)

yum install centos-release-scl -y
yum install devtoolset-9-gcc* -y
source /opt/rh/devtoolset-9/enable

make 报错 /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found

find / -name "libstdc++*"
# 找到自己 GCC 5.4 安装目录下的文件 libstdc++.so.6 我的叫 libstdc++.so.6.0.21 复制到 /usr/lib64/ 下
# cp 命令复制 就不写了
# 然后删掉过改名原来的 libstdc++.so.6
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6_old
# 做个软连接或改名新的 libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6

make 报错 /lib64/libc.so.6: version `GLIBC_2.18’ not found

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz 
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr
make -j2
make install
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值