【德哥说库系列】-RHEL8环境源码编译安装MySQL8.0

本文主要是介绍【德哥说库系列】-RHEL8环境源码编译安装MySQL8.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 📣 1.源码安装包下载
    • 📣 2.环境准备
      • ✨ 2.1 操作系统
      • ✨2.2.关闭防火墙
      • ✨2.3.selinux关闭
      • ✨2.4.Host解析配置
      • ✨2.5.卸载mariadb
    • 📣 3.配置yum安装依赖
    • 📣 4.源码安装
      • ✨4.1 安装报错处理
    • 📣 5.安装MySQL
      • ✨5.1 用户及组
      • ✨5.2 参数文件
      • ✨5.2 MySQL初始化
      • ✨5.4 环境变量设置
    • 📣 6.启动关闭
    • 📣 7.开机启动配置
      • ✨7.1 服务配置
      • ✨7.2 加载设置

前言

Linux源码安装MySQL在实际安装的操作系统进行可根据需要定制编译,最灵活,性能最好.

📣 1.源码安装包下载

官网下载地址:https://dev.mysql.com/downloads/mysql/
源码包下载选择Source Code,无需选择操作系统平台

在这里插入图片描述

📣 2.环境准备

安装任何数据库之前,操作系统环境准备至关重要,本次实操是基于RHEL8操作系统。源码安装对环境要求比较高,涉及部分系统内核的升级。

✨ 2.1 操作系统

[root@jeames ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.1 (Ootpa)

✨2.2.关闭防火墙

查看防火墙是状态
[root@jeames ~]# systemctl status firewalld
关闭防火墙
[root@jeames ~]# systemctl stop firewalld
取消开机自启动
[root@jeames ~]# systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

✨2.3.selinux关闭

修改参数文件/etc/sysconfig/selinux中SELINUX的值为disabled
[root@jeames ~]# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
修改完成后需要重启服务器才生效

✨2.4.Host解析配置

[root@jeames ~]# hostname
jeames
[root@jeames ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
#此处新增hostname与ip的对应
192.168.6.10 jeames

✨2.5.卸载mariadb

为了保证后续操作不会产生其他冲突,我们卸载部分操作系统自带原有的mariadb
[root@jeames ~]# rpm -qa|grep mariadb
[root@jeames ~]# rpm -qa|grep mariadb-libs|xargs rpm -e --nodeps

📣 3.配置yum安装依赖

1.创建挂载路径
[root@jeames ~]# mkdir -p /mnt/cdrom2.挂载系统镜像光盘到指定目录
#因为光盘的格式通常是iso9660,意思是/dev/sr0挂载在/mnt/cdrom目录上
[root@jeames ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom
mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.3.修改yum源配置文件
编辑rhel8-local.repo文件
[root@jeames ~]# cd /etc/yum.repos.d
[root@jeames yum.repos.d]# vi rhel8-local.repo
[localREPO]
name=localhost8
baseurl=file:///mnt/cdrom/BaseOS
enable=1
gpgcheck=0[localREPO_APP]
name=localhost8_app
baseurl=file:///mnt/cdrom/AppStream
enable=1
gpgcheck=04.配置好后重建本地缓存
yum clean all 
yum makecache 
yum repolist
5.安装MySQL 8.0源码所需的依赖包
[root@jeames ~]# yum -y install lrzsz wget perl-Digest-MD5
[root@jeames ~]# yum -y install libaio#编译软件依赖
[root@jeames ~]# yum -y install cmake gcc gcc-c++
[root@jeames ~]# yum -y install git make
[root@jeames ~]# yum install libtirpc-devel
[root@jeames ~]# yum insatll rpcgen
[root@jeames ~]# yum install libudev-devel
[root@jeames ~]# yum install ncurses-devel#字符终端处理依赖
[root@jeames ~]# yum install openssl openssl-devel ncurses
注解:rpcgen需要手动下载安装包编译安装以下就是具体解决Mysql源码编译报错Could not find rpcgen的方法。
rpcgen下载参考 https://github.com/thkukuk/rpcsvc-proto/releasesxz -d rpcsvc-proto-1.4.4.tar.xz
tar -xvf rpcsvc-proto-1.4.4.tar
cd rpcsvc-proto-1.4.4
./configure
make
make install

在这里插入图片描述

📣 4.源码安装

1.解压软件包
#创建软件目录
[root@jeames ~]# mkdir -p /soft2.上传软件包
#通过Xftp工具或者SecureCRT自带的Sftp上传软件包
mysql-boost-8.0.27.tar.gz3.校验安装包
[root@jeames ~]# cd /soft
[root@jeames soft]# md5sum mysql-boost-8.0.27.tar.gz
80310c5a1b24145fa072927ab99a4c0d  mysql-boost-8.0.27.tar.gz
注:md5sum是linux下的shell命令,其功能是计算检验MD5效验码,
是为了MySQL安装包是否损坏4.解压缩安装包
[root@jeames soft]# tar -zxf mysql-boost-8.0.27.tar.gz5.编译安装
#初始化
[root@jeames soft]# cd mysql-8.0.27
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1 \
-DDOWNLOAD_BOOST=1 \
-DFORCE_INSOURCE_BUILD=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=0 \
-DCMAKE_C_COMPILER=/usr/bin/gcc \
-DCMAKE_CXX_COMPILER=/usr/bin/g++ \
-DWITH_BOOST=/soft/mysql-8.0.27/boost#编译
[root@jeames mysql-8.0.27]# make -j4#安装
[root@jeames mysql-8.0.27]# make install

✨4.1 安装报错处理

在这里插入图片描述

查阅相关信息后,认为是虚拟机内存不足造成的。
通过创建swap分区解决了这个问题,编译成功。加到内存到8G ,SWAP交换区增加了4G即可
可以通过以下方法增大swap交换分区
dd if=/dev/zero of=/swapfile bs=1024 count=4194304
mkswap /swapfile
swapon /swapfile
swapon -s
vim /etc/fstab
/swapfile swap swap defaults 0 0
mount -a

在这里插入图片描述
在这里插入图片描述

📣 5.安装MySQL

✨5.1 用户及组

groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql

✨5.2 参数文件

cat > /etc/my.cnf <<“EOF”
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
server_id=80273306
log-bin
skip-name-resolve
character_set_server=utf8mb4
#default-time-zone = ‘+8:00’
log_timestamps = SYSTEM
EOF

✨5.2 MySQL初始化

/usr/local/mysql/bin/mysqld --initialize-insecure
–basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

✨5.4 环境变量设置

echo “export PATH=$PATH:/usr/local/mysql/bin” >> /root/.bashrc
source /root/.bashrc

在这里插入图片描述

📣 6.启动关闭

启动MySQL:
mysqld_safe &
登录MySQL,默认密码为空 :
mysql -uroot -p
关闭MySQL
mysqladmin -uroot -p shutdown

在这里插入图片描述

📣 7.开机启动配置

✨7.1 服务配置

vi /usr/lib/systemd/system/mysqld.service##加入以下内容即可
[Unit]
Description=Mysql server
After=network.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID  
ExecStop=/bin/kill -s QUIT $MAINPID KillMode=process
LimitNOFILE=65535
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false

✨7.2 加载设置

systemctl daemon-reload
systemctl stop mysqld
systemctl enable mysqld

systemctl status mysqld
systemctl start mysqld
systemctl enable mysqld
在这里插入图片描述

这篇关于【德哥说库系列】-RHEL8环境源码编译安装MySQL8.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/259436

相关文章

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

grom设置全局日志实现执行并打印sql语句

《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些... 目录gorm中的自定义日志gorm中日志的其他操作日志级别Debug自定义 Loggergorm中的

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据

《mysql通过frm和ibd文件恢复表_mysql5.7根据.frm和.ibd文件恢复表结构和数据》文章主要介绍了如何从.frm和.ibd文件恢复MySQLInnoDB表结构和数据,需要的朋友可以参... 目录一、恢复表结构二、恢复表数据补充方法一、恢复表结构(从 .frm 文件)方法 1:使用 mysq

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

MySQL进阶之路索引失效的11种情况详析

《MySQL进阶之路索引失效的11种情况详析》:本文主要介绍MySQL查询优化中的11种常见情况,包括索引的使用和优化策略,通过这些策略,开发者可以显著提升查询性能,需要的朋友可以参考下... 目录前言图示1. 使用不等式操作符(!=, <, >)2. 使用 OR 连接多个条件3. 对索引字段进行计算操作4

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p