【原创】RockyLinux9.3手动编译MySQL8.2.0源码,超详细!!

前言

MySQL安装如果使用rpm包安装实在过于麻烦,缺这缺那的,我就想能不能就源码包自己手动编译安装,编译完的包可以给其他服务器直接用,这样只需要麻烦一次,后面就方便了。至于为什么不用RockyLinux8.6版本,因为我试过了,编译成功的MySQL执行报错了,我也不知道什么原因导致的,索性换到最新的RockyLinux9.3版本了。

我这里用的电脑都是X86_64平台的,如果是其他CPU架构的机型则需要下载对应CPU架构版本的rpm包。

这篇文章是我在一台虚拟机上编译完成后,总结经验之后,第三次编译了,一边操作一边写的这篇博客,保证真实有效,跟着我操作,绝对能够编译成功!

提前准备

这准备的东西就多了,首先是RockyLinux9.3版本,这个直接去官网下载,最小化安装即可。然后是装一大堆依赖包。

安装完后在/opt下有个rh目录,这个rh可千万不能手贱删了!!删了后cmake会报错!!(别问我是怎么知道的,因为我手贱把它删了,导致只能全部重来)

yum install -y cmake gcc-c++ gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc openssl-devel ncurses-devel rpcgen bzip2

下载MySQL的源码包

MySQL :: Download MySQL Community Server (Archived Versions)

选择版本8.2.0,截止目前发稿(2024.3.26)的最新版本

选择Source Code,选择All Operating System

下载到MySQL的源码包

下载boost包

https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2

下载libtirpc-devel

RPM resource libtirpc-devel

ctrl+F网页搜索:libtirpc-devel-1.3.3-2.el9.x86_64.rpm

并下载这个包

下载libtirpc

RPM resource libtirpc

ctrl+F网页搜索:libtirpc-devel-1.3.3-2.el9.x86_64.rpm

并下载这个包

上传文件

刚才下载的所有的包,到/opt目录下,并cd /opt

安装boost包

bzip2 -d boost_1_77_0.tar.bz2

注意这一过程时间比较长,且没有日志打印

再次解压

tar xvf boost_1_77_0.tar

执行安装

cd boost_1_77_0
./bootstrap.sh
./b2
./b2 headers

安装另外两个rpm包

cd /opt
rpm -ivh libtirpc-devel-1.3.3-2.el9.x86_64.rpm
rpm -ivh libtirpc-1.3.3-2.el9.x86_64.rpm

编译安装MySQL

解压MySQL源码包

tar zxvf mysql-8.2.0.tar.gz
cd mysql-8.2.0

创建build目录,并cmake

mkdir build
cd build
cmake .. -DWITH_BOOST=/opt/boost_1_77_0

当出现-- Build files have been written to: /opt/mysql-8.2.0/build,说明cmake完成了

进行make操作

这个根据自己的电脑性能量力而行,选择合适的job数量,由于我的电脑配置比较高,我选择了32个job。这个对电脑CPU和内存的要求都很高。我电脑是i7 12700H(14c20T)+64GB内存,所以我才敢直接-j 32

make -j 32

电脑性能越强悍,这一步时间越短

经过漫长的编译等待时间,终于编译好了

进行make install

make install

打包MySQL

在执行完make install后在/usr/local目录下就生成了MySQL编译完的包了,执行

cd /usr/local
tar czvf mysql-bin.8.2.0.tar.gz mysql/

将这个tar包下载下来就能直接给其他服务器使用了

创建MySQL用户

目前8.2.0版本的MySQL无法使用root用户进行启动,因此需要创建一个MySQL用户

useradd mysql

赋予mysql用户mysql目录的权限

cd /usr/local
chown -R mysql:mysql mysql

运行MySQL

su mysql
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup
bin/mysqld_safe --user=mysql &ps aux|grep mysql

进入MySQL

./bin/mysql -uroot -p

该密码可以在mysqld initialize这一步里找到,输入该密码即可进入MySQL

到了这一步可以说是大功告成!!MySQL成功编译,并能够进入了

修改root用户密码,并开启远程登录

alter user user() identified by '你的密码';
use mysql;
update user set host = '%'  where user = 'root';
flush privileges;

DBeaver连接MySQL

由于版权问题,公司不允许使用Navicat,目前这里使用DBeaver进行连接

直接连接的话会报这个错

在驱动属性中,将allowPublicKeyRetrieval改为true即可

这样就能连接成功了,这就是我们亲手编译完成的MySQL8.2.0

MySQL设置自启

返回使用root用户

chmod 755 /etc/rc.d/rc.local
vi /etc/rc.d/rc.local

在结尾添加一行内容:

/usr/local/mysql/support-files/mysql.server start

保存后重启服务器看效果

结语

该手动编译的MySQL没有my.cnf,需要自己手动创建,就在/usr/local/mysql目录下,大家看看/usr/local/mysql/support-files/mysql.server的源码就知道了。

如果需要讨论交流的,可以进群讨论:170618278(群很水,请见谅)。

如果本博客存在什么问题,请合理评论讨论交流,谢谢!!

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

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

相关文章

Java虚拟机运行原理

在 Java 中新建一个类Test: class Test {int a; }在Main方法中创建两个 Test 对象,并给 a 赋不同的值。 写一个 exchange 方法,在方法中交换两个Test 对象,最后输出两个对象中 a 的值。 public class Main {public static void…

SaaS模式java智慧工地源码 有演示 AI视频智能分析解决工地安监需求

SaaS模式java智慧工地源码 AI视频智能分析解决工地安监需求 有演示 智慧工地系统充分利用计算机技术、互联网、物联网、云计算、大数据等新一代信息技术,以PC端,移动端,平板端三位一体的管控方式为企业现场工程管理提供了先进的技术手段。让劳…

第四讲:隐语SecretFlow安装部署

SecretFLow安装 环境要求: Python>3.8; 操作系统:CentOS7,Anolis8,Ubuntu 18.04/20.04,macOS11.1,WSL2; 资源:>8核16GB 安装包:SecretFLow, SecretF…

物联网数据报表分析

随着物联网技术的迅猛发展,越来越多的企业开始将物联网解决方案应用于各个领域,从提高生产效率到优化用户体验,物联网都发挥着至关重要的作用。然而,如何有效地分析和管理物联网产生的海量数据,成为企业面临的挑战之一…

fl破解补丁下载2024FL Studio v21.1.1.3750 Crack永久下载和使用激活图文教程

FL Studio21简介 各位,大家晚上好,今天给大家带来最新最新2024水果编曲软件FL Studio 21中文版下载安装激活图文教程。我们一起先了解一些FL Studio 。FL Studio21是目前流行广泛使用人数最多音乐编曲宿主制作DAW软件,这款软件相信广大网友并…

【c++】【STL】stack类、queue类、deque类详解及模拟

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 今日主菜:stack和queue,deque类 主厨:邪王真眼 所属专栏:c专栏 主厨的主页:Chef‘s blog 这可是…

JVM垃圾收集——概述

文章目录 1、什么是垃圾2、为什么需要垃圾收集3、如何进行垃圾收集3.1、早期垃圾收集3.2、Java垃圾收集机制 4、小结 垃圾收集(Garbage Collection,GC)并不是Java语言所独有的,早在1960年,Lisp语言中就已经开始使用内存的动态分配和垃圾收集技术。可见&a…

基于SSM框架的酒店预订系统

基于SSM框架的酒店预订系统的设计与实现 摘要 当今世界的互联网信息技术飞速发展,网络化的工作模式已经几乎覆盖到各个工作领域中的业务内,人们的日常生活也渐渐离不开互联网。因此,在当下全国各处的酒店都开始构建起了自己的网络预订系统。…

Spring Boot整合Spring Security

Spring Boot 专栏:Spring Boot 从零单排 Spring Cloud 专栏:Spring Cloud 从零单排 GitHub:SpringBootDemo Gitee:SpringBootDemo Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块的默认技术…

Netty学习——源码篇6 Pipeline设计原理

1 Pipeline设计原理 在Netty中每个Channel都有且仅有一个ChannelPipeline与之对应,它们的组成关系如下图: 通过上图可以看到,一个Channel包含了一个ChannelPipeline,而ChannelPipeline中又维护了一个由ChannelHandlerContext组成的…

【笔记】深入理解JVM机制

🎥 个人主页:Dikz12📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 JVM 运⾏流程图 JVM 中内存区域划分 方法区 / 元数据区 堆 栈 程序计数器 本地方法栈 内存区域总结 JVM 中类加载过程 …

C++ STL- list 的使用以及练习

目录 0.引言 1. list 介绍 2. list 使用 2.1 构造函数 2.2 list iterator 的使用 3 list capacity 4. list element access 5. list modifiers 6. list 迭代器失效 7. list 与vector 对vector 8. OJ 题讲解 删除链表的倒数第 N 个节点: 0.引言 …

Jetson AGX ORIN 配置 FGVC-PIM 神经网络(包含 arm64 下面 torch 和 torchvision 配置内容)

Jetson AGX ORIN 配置 FGVC-PIM 神经网络 文章目录 Jetson AGX ORIN 配置 FGVC-PIM 神经网络配置 ORIN 环境创建 FGVC-PIM 虚拟环境安装 PyTorch安装 torchvision安装其他依赖包 配置 ORIN 环境 首先先配置 ORIN 的环境,可以参考这个链接: Jetson AGX …

Go第三方框架--gin框架(一)

序言 Gin框架作为go语言使用最多的web框架,以其快速的响应速度和对复杂http路由配置的支持受到程序员和媛们的喜爱,几乎统治了web市场。但作为一名合格的程序员,要知其然更要知其所以然,不然八股文背的也没有啥意思。本着这个原则…

JavaScript中的Lexical Environment

概要 本文主要介绍JavaScript中的一个重要概念Lexical Environment,它可以帮助我们解释我们为什么可以通过嵌套方法,共享数据,以及为什么可以在函数中定义一个和全局变量同名的变量,并且不会影响到全局变量。 基本分析 基本概念…

如何使用Python进行网络安全与密码学【第149篇—密码学】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 用Python进行网络安全与密码学:技术实践指南 随着互联网的普及,网络…

几个常用的AI工具

人工智能大模型的出现对人类社会产生了深远的影响,这些影响既包括积极的方面,也包括一些潜在的挑战: 1. **提高效率**:AI大模型能够快速处理大量数据,提高工作效率,尤其在数据分析、自然语言处理等领域。 2. **辅助决…

面向对象【枚举类】

文章目录 枚举类定义枚举类enum 方式定义的要求和特点 enum 中常用方法实现接口的枚举类 枚举类 枚举类是一种特殊的类,它用于定义一组固定数量的常量。枚举类在实际开发中非常有用,因为它们可以增加代码的可读性和可维护性。本文将介绍Java枚举类的定义…

Java基于微信小程序的校园请假系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#…

【Java程序设计】【C00370】基于(JavaWeb)Springboot的公司进存销管理系统(有论文)

TOC 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,博客中有上百套程序可供参考,欢迎共同交流学习。 项目简介 项目获取 🍅文末点击卡片…