Centos8源码编译安装MySQL5.7

  • 下载并解压 MySQL 源码包:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.41.tar.gz
tar -zxvf mysql-5.7.41.tar.gz
cd mysql-5.7.41
  • 安装编译 MySQL 所需的依赖包:
yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel libarchive
  • 创建 MySQL 登录用户:
useradd -s /sbin/nologin mysql
  • 使用 cmake 进行编译配置:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=all \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST:PATH=/usr/include/boost/
  • cmake可能会出现的问题:

报错:cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd

解决方法:需要安装yum install -y libarchive

报错:CMake Error at cmake/boost.cmake:88 (MESSAGE):
  You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>

解决方法:报这个错时,打开mysql安装文件的CMakeCache.txt,因为这个安装文件太老,和centos8不匹配,需要从这个文件中找到'WITH_BOOST:'改成WITH_BOOST:PATH=/usr/include/boost/即可

报错:CMake Error at rapid/plugin/group_replication/rpcgen.cmake:100 (MESSAGE): Could not find rpcgen

解决方法:表示没有找到rpcgen,建议从https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz

下载一个rpcsvc-proto的源码包进行编译安装,安装完成后重新cmake即可

wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4/rpcsvc-proto-1.4.tar.gz
tar xf rpcsvc-proto-1.4.tar.gz
cd rpcsvc-proto-1.4
./configure
make && make install
  • 编译安装 MySQL:
make && make install
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
  • 环境变量配置:
vim /etc/profile
在行尾加入:
export PATH=$PATH:/usr/local/mysql/bin/
保存后刷新
source /etc/profile

  • 数据库初始化:
mkdir -pv /data/mysql
chown -R mysql:mysql  /usr/local/mysql /data/mysql/
yum install -y perl-Module-Install
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/
  • 使用systemd管理服务:
vim /etc/systemd/system/mysql.service
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target
保存后执行重新加载
systemctl daemon-reload

最后尝试启动:
systemctl start mysql

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值