【德哥说库系列】-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
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/167137.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++11新特性之右值引用与移动语义

文章目录 一、左值与左值引用二、右值与右值引用三、 左值引用与右值引用比较四、右值引用使用场景和意义1.左值引用的短板2.移动构造和移动赋值3.STL中右值引用的使用 五、万能引用与完美转发1.万能引用2.完美转发 一、左值与左值引用 在C11之前&#xff0c;我们把数据分为常…

[论文笔记]GPT-2

引言 今天继续GPT系列论文&#xff0c; 这次是Language Models are Unsupervised Multitask Learners&#xff0c;即GPT-2&#xff0c;中文题目的意思是 语言模型是无监督多任务学习器。 自然语言任务&#xff0c;比如问答、机器翻译、阅读理解和摘要&#xff0c;是在任务相关…

框架篇

一、Spring中的单例Bean是线程安全的吗 二、AOP相关面试题 三、Spring中的事务 四、Spring中事务失效的场景有 五、Spring bean的生命周期 六、Spring的循环依赖 七、SpringMVC的执行流程 八、自动配置原理 九、Spring框架常见的注解 十、Mybatis的执行流程 十一、MyBatis延迟加…

postgresql(openGauss)模糊匹配参数

被pg系这个show要求精准匹配参数恶心的不轻。 原理是用.psqlrc&#xff08;openGauss用.gsqlrc&#xff09;文件set一个select常量进去&#xff0c;需要用&#xff1a;调用这个常量。理论上也可以增强其他的各种功能。 我在openGauss做的一个例子 .gsqlrc&#xff08;.psqlrc…

自学SLAM(4)《第二讲:三维物体刚体运动》作业

前言 小编研究生的研究方向是视觉SLAM&#xff0c;目前在自学&#xff0c;本篇文章为初学高翔老师课的第二次作业。 文章目录 前言1.熟悉 Eigen 矩阵运算2.几何运算练习3.旋转的表达4.罗德里格斯公式的证明5.四元数运算性质的验证6.熟悉 C11 1.熟悉 Eigen 矩阵运算 设线性⽅程 …

分布式共识算法及落地

摘要 本文介绍常见的分布式共识算法&#xff0c;使用场景&#xff0c;以及相关已经落地了的程序或框架 1. 为什么要分布式共识算法 在分布式系统中&#xff0c;不同节点之间可能存在网络延迟、故障等原因导致彼此之间存在数据不一致的情况&#xff0c;为了保证分布式系统中的…

[TCP1P 2023] 部分crypto,pwn,reverse

Crypto Final Consensus 这是个AES爆破密钥的题&#xff0c;加密方法是先后用两个密钥加密。远程先给出加密后的flag&#xff0c;然后允许输入值并进行加密。 from Crypto.Cipher import AES import random from Crypto.Util.Padding import pada b"" b b"&…

系统架构师考试科目一:综合知识

某软件公司欲开发一个 Windows 平台上的公告板系统。在明确用户需求后&#xff0c;该公司的 架构师决定采用 Command 模式实现该系统的界面显示部分&#xff0c;并设计 UML 类图如下 图所示。图中与 Command 模式中的 Invoker 角色相对应的类是( ) &#xff0c;与 ConcreteComm…

一篇文章讲懂mysql中的锁

事务的隔离性是由锁来实现的。 为什么需要锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题&#xff0c;当多个线程并发访问某个数据的时候&#xff0c;尤其是针对一些敏感的数据&#xff08;比如订单、金额等&#xff09;&#x…

C语言 ——宽字符

前言&#xff1a; 过去C语⾔并不适合⾮英语国家&#xff08;地区&#xff09;使⽤。 C语⾔最初假定字符都是单字节的。但是这些假定并不是在世界的任何地⽅都适⽤。 C语⾔字符默认是采⽤ASCII编码的&#xff0c;ASCII字符集采⽤的是单字节编码&#xff0c;且只使⽤了单字节中…

Opensuse Tumbleweed快速部署K8S-1.28.2

** #查看你的网卡信息 nmcli device show#设置你的静态IP nmcli connection modify ens32 ipv4.method manual \ipv4.addresses 172.16.20.214/24 ipv4.gateway 172.16.20.1 \ipv4.dns 114.114.114.114#重启网卡生效 nmcli c down ens32 && nmcli c up ens32#添加DNS …

代码随想录算法训练营第二十九天 | 回溯算法总结

​ 代码随想录算法训练营第二十九天 | 回溯算法总结 1. 组合问题 1.1 组合问题 在77. 组合中&#xff0c;我们开始用回溯法解决第一道题目&#xff1a;组合问题。 回溯算法跟k层for循环同样是暴力解法&#xff0c;为什么用回溯呢&#xff1f;回溯法的魅力&#xff0c;用递…

解决appium或selenium使用时driver.find_element_by_xpath中间有删除线问题

一、问题描述 Darren洋在公司电脑搭建完成appium后准备运行appium2.0版本执行脚本时发现执行脚本中的driver.find_element_by_xpath中间有删除线&#xff0c;说明较高版本的appium及selenium中该方法已被弃用。 二、解决办法 该问题解决办法为将driver.find_element_by_xpath()…

Linux线程--创建及等待

1.进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程&#xff1a;一个进程在同一时刻只做一件事情。有了多个控制线程后&#xff0c;在程序设计时可以把进程设计成在同一时刻做不止一件事&#xff0c;每个线程各自处理独立的任务。  线程是操作系统能够进行运算调度的…

Android Studio快速实现Flutter应用的国际化和多语言支持

文章目录 Flutter实现国际化和多语言支持添加依赖库Android Studio 安装flutter Intl插件项目初始化增加语言app中使用国际化在应用中切换语言&#xff1a;运行应用 总结easy_localization 插件intl 包Flutter GetX 包flutter_i18n 插件JSON 文件 Flutter实现国际化和多语言支持…

01、Python 的数据类型

目录 数据类型Python变量具有如下两个特征&#xff1a;输出变量 标识符规则整型四种表示形式浮点数复数 数据类型 使用Python变量 Python的基础类型 Python变量具有如下两个特征&#xff1a; 变量无需声明即可直接赋值&#xff1a;对一个不存在的变量赋值就相当于定义了一个…

html表格标签

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--表格table 行 tr 列 td --> <table border"1px"><tr> <!--colsp…

mac 升级node到指定版本

node版本14.15.1升级到最新稳定版18.18.2 mac系统 先查看一下自己的node版本 node -v开始升级 第一步 清除node的缓存 sudo npm cache clean -f第二步 安装n模块【管理模块 n是管理 nodejs版本】 sudo npm install -g n第三步升级node sudo n stable // 把当前系统的 Node…

【试题039】 多个逻辑或例题

题目&#xff1a;设int n;,执行表达式(n0)||(n1)||(n2)||(n3)后,n的值是&#xff1f;代码分析&#xff1a; //设int n; , 执行表达式(n 0) || (n 1) ||(n 2) ||(n 3)后, n的值是?int n;printf("n%d\n", (n 0) || (n 1) || (n 2) || (n 3));//分析&#xff1…