MySQL8源代码安装(CentOS8版本)

news2024/9/24 5:31:29

目标

在CentOS8上面源代码编译安装MySQL8.

下载源代码

打开MySQL下载页面:
https://www.mysql.com/downloads/

找到MySQL社区版本页面:
MySQL社区版本页面
选择下载MySQL社区版服务器进行下载:
MySQL社区服务器版
最后选择,MySQL源代码进行下载,如下图:
mysql源代码下载boost

这里选择了与平台无关的的源代码进行下载,注意这里需要包含boost。

安装

检查下载的源代码没有问题后,将源代码上传到需要安装的linux服务器上面。

# 检查用户组是否存在
cat /etc/group | grep mysql
# 检查用户是否存在
cat /etc/passwd | grep mysql
# 添加用户组
groupadd mysql
# 添加用户
useradd -r -g mysql -s /bin/false mysql
# 解压安装包
tar zxvf ./mysql-boost-8.0.31.tar.gz
# 进入源码目录
cd ./mysql-8.0.31/
# 创建编译目录
mkdir bld
# 进入编译目录
cd bld
# 创建安装目录
mkdir /opt/mysql
# 配置
cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_INSTALL_PREFIX=/opt/mysql -DCPACK_MONOLITHIC_INSTALL=1 -DWITH_DEBUG=0 -DWITH_SSL=system -DWITH_BOOST=$HOME/mysql-8.0.31/boost
# 编译
make
# 安装
make install

参数说明:

  • -DBUILD_CONFIG=mysql_release:表示使用与官方一样的配置;
  • -DCMAKE_INSTALL_PREFIX=/opt/mysql:设置安装的目录;
  • -DCPACK_MONOLITHIC_INSTALL=1:使 make package 生成单个安装文件;
  • -DWITH_DEBUG=0:禁用debug;
  • -DWITH_SSL=system:支持ssl;
  • -DWITH_BOOST=$HOME/mysql-8.0.31/boost:boost安装目录。

期间遇到的依赖问题:

dnf install gcc-toolset-11-gcc gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils 
dnf install gcc-toolset-11-annobin-plugin-gcc

准备数据库配置文件

# 到安装目录
cd /opt/mysql/
# 参加数据库数据文件目录
mkdir data
# 修改权限
chown mysql:mysql data
chmod 750 data
# 准备数据库配置
vim my.cnf

my.cnf

[mysqld]
port=3306
socket=/tmp/mysql.sock
basedir=/opt/mysql
datadir=/opt/mysql/data

初始化与启动数据库

bin/mysqld --defaults-file=./my.cnf --initialize --user=mysql

输出如下:

2023-01-18T06:45:20.659891Z 0 [System] [MY-013169] [Server] /opt/mysql/bin/mysqld (mysqld 8.0.31) initializing of server in progress as process 1965037
2023-01-18T06:45:20.667103Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-18T06:45:20.987887Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-18T06:45:22.135569Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxxx
# 设置ssl
bin/mysql_ssl_rsa_setup
# 手动启动数据库
bin/mysqld_safe --defaults-file=./my.cnf --user=mysql

保持前台手动启动mysql进程,新开一个窗口,来加固mysql:

bin/mysql_secure_installation

测试

mysql -u root -p

输出如下:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.31 Source distribution

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>

这样就表示mysql启动成功了。
关闭mysql前台运行方式:

bin/mysqladmin shutdown -p

输入正确的root密码,就会关闭mysqld进程。

注册为系统服务

# 负责系统服务配置文件
cp support-files/mysql.server /etc/init.d/mysql.server
# 注册为系统服务
systemctl enable mysql.server.service
# 启动数据库
systemctl start mysql.server.service
# 查看数据库启动状态
systemctl status mysql.server.service
# 停止数据库
systemctl stop mysql.server.service

总结

到这里基本上就完成了mysql8的源码安装了。并且使用mysql提供的服务脚本,做成了系统服务。

参考:

  • 播布客小辉老师MySQL课程
  • 2.9.4 Installing MySQL Using a Standard Source Distribution
  • 2.9.6 Configuring SSL Library Support
  • 2.9.7 MySQL Source-Configuration Options
  • 5.1.8 Server System Variables

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

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

相关文章

以element ui为例分析前端各种弹窗和对话框的使用场景与区别

文章目录摘要Dialog 对话框Drawer 抽屉Notice 通知MessageBox 弹框Popconfirm 气泡确认框Message 消息提示Notification 通知Dialog 对话框与Drawer 抽屉的区别MessageBox和Dialog的区别Message消息提示与Notification通知的区别摘要 本文研究分析element ui 中的各种弹窗和对…

【机器学习 吴恩达】2022课程笔记(持续更新)

一、机器学习 1.1 机器学习定义 计算机程序从经验E中学习,解决某一任务T,进行某一性能P,通过P测定在T上的表现因经验E而提高 eg:跳棋程序 E: 程序自身下的上万盘棋局 T: 下跳棋 P: 与新对手下…

Python离线下载whl文件,xxx.wh1 is not a supported wheel on this platform

0、问题 今天在安装 whl 文件的时候,由于电脑处于没有网络的情况,只能在有网络的电脑上下载好 whl 文件,导入之后进行离线安装 但是由于版本不匹配的问题。导致报如下的错误: ERROR:xxx.wh1 is not a supported whe…

创建成功的风格指南

作者:Sean Watson,ServiceNow 创建风格指南是一项艰巨的任务。风格指南包含语法标准、语音和语调指南、要使用和避免的词、复制模式以及产品品牌的基础知识。这些文档很容易变得非常乏味以至于难以使用,或者非常简单以至于无法满足需求。它们…

DDOS和CC如何区分

DDOS 的全称:Distributed Denial of Service中文意思是分布式拒绝服务。该攻击方式利用目标系统网络服务功能缺陷或者直接消耗其系统资源。使得该目标系统无法提供正常的服务。还有,为什么说 DDoS 攻击很泛滥?因为便宜啊,可是效果…

buuctf-web-[RoarCTF 2019]Easy Calc1

打开环境发现一个类似计算器的东西尝试一些常规的测试参数尝试单引号发现提示&#xff0c;但是并未报错&#xff0c;非sql注入查看源代码找到一段JavaScript脚本<script>$(#calc).submit(function(){$.ajax({url:"calc.php?num"encodeURIComponent($("#c…

业务-研发一体化管理平台,存在吗?

伴随着互联网在中国进程的发展&#xff0c;线上研发效能及业务应用软件也不落后于时代进步的脚步&#xff0c;中国软件行业从未停止过持续的创新。 2022年&#xff0c;业务应用开发正在简化&#xff0c;研发效能也在提升&#xff0c;其中不得不提软件在协同促进、研发一体化管…

Java 23种设计模式的分类和使用场景

听说过GoF吧&#xff1f; GoF是设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software&#xff08;中译本名为《设计模式——可复用面向对象软件的基础》&#xff09;的四位作者&#xff0c;他们分为是&#xff1a;Elich Gamma、Richard Helm、R…

MyBatis Plus

概述MyBatis-Plus MyBatis-Plus简称 MP是一个 MyBatis的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开 发、提高效率而生 官方文档&#xff1a;https://baomidou.com/ Hello MP 添加依赖 <!-- 如果没有整合SpringBoot&#xff0c;则需要…

python-MySQL数据库基础(二)操作数据库、数据表进行增删改查、分组、排序、连接

操作数据库(DDL) Cmder是一个软件包&#xff0c;它被创建出来用于Windows上替代模拟器的&#xff0c;cmder官网&#xff1a;https://cmder.net/&#xff0c;安装完成后把安装目录下的bin文件夹添加到环境变量里才能正常使用&#xff08;跟安装python类似&#xff09;。 连接数…

85.机器翻译与数据集

语言模型是自然语言处理的关键&#xff0c; 而机器翻译是语言模型最成功的基准测试。 因为机器翻译正是将输入序列转换成输出序列的 序列转换模型&#xff08;sequence transduction&#xff09;的核心问题。 序列转换模型在各类现代人工智能应用中发挥着至关重要的作用&#x…

Linux常用命令——traceroute命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) traceroute 显示数据包到主机间的路径 补充说明 traceroute命令用于追踪数据包在网络上的传输时的全部路径&#xff0c;它默认发送的数据包大小是40字节。 通过traceroute我们可以知道信息从你的计算机到互联网…

若依项目启动前后端分离版本

若依项目的启动 1、下载源码 git clone https://gitee.com/y_project/RuoYi-Vue.git拉取代码、解压解压后 项目结构&#xff1a; 2、项目依赖 1、前端的依赖 2、后端的依赖 模块化&#xff1a; 依赖&#xff1a; 3、项目配置 1、前端配置 查看package.json 文件、能看到…

【Kubernetes】 从基础认识 k8s核心pod相关概念

基础 提示:此篇帮助朋友们,养成从0到1不断延伸知识的一种方法 最简单的创建pod入手 访问官方文档,直接使用案例,进行修改即可! 官网地址:https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/assign-pods-nodes/删除不需要的部分,根据规则添加需要的参数…

[oeasy]python0053_ 续行符_line_continuation_python行尾续行

续行符与三引号 回忆上次内容 上次还是转义序列 类型英文符号\abell响铃\bbackspace退格\ttab水平制表符\vvertical tab垂直制表符换行不回车\\backslash反斜杠\"double quote双引号\’single quote单引号\xhh具体字符输出(hh)16 进制对应的ascii 字符\ooo具体字符输出…

TDengine 时序数据特色查询语法详解,助力时序场景下的应用开发

小 T 导读&#xff1a;TDengine 是专为时序数据而研发的大数据平台&#xff0c;存储和计算都针对时序数据的特点量身定制&#xff0c;在支持标准 SQL 的基础之上&#xff0c;还提供了一系列贴合时序业务场景的特色查询语法&#xff0c;极大地方便了时序场景的应用开发。TDengin…

Java 里面 @InitBinder注解的使用原理

目录 1 @InitBinder注解作用1.1绑定同属性多对象1.2 类型转换2 总结1 @InitBinder注解作用 1.1绑定同属性多对象 第一个作用: 绑定同属性多对象 什么意思,就是有一个接口,参数是两个实体类,这两个实体类里面的属性名称还是一样,那么前端给这个接口传值的时候,哪个参数…

JavaEE day3 初识web与HTML 2

HTML HTML&#xff1a; 1.由标签&#xff08;tag&#xff09;组成的一棵树形结构&#xff0c;由于标签处于一棵树上&#xff0c;有时候也用元素&#xff08;element&#xff09;或者结点&#xff08;node&#xff09;表示 2.基本结构&#xff1a;html包括head与body两部分&a…

HummerRisk V0.9.0:增加RBAC 拓扑图,云检测、漏洞、主机等模块增加规则

HummerRisk V0.9.0发布&#xff1a;增加RBAC 资源拓扑图&#xff0c;首页新增检查的统计数据&#xff0c;云检测、漏洞、主机等模块增加规则&#xff0c;对象存储增加京东云&#xff0c;操作审计增加金山云&#xff0c;镜像仓库新增设置别名。 感谢社区中小伙伴们的反馈&#…

40 个定时任务,带你理解 RocketMQ 设计精髓!

大家好&#xff0c;我是君哥。今天来分享 RocketMQ 的定时任务。通过这些定时任务&#xff0c;能让我们更加理解 RocketMQ 的消息处理机制和设计理念。从 RocketMQ 4.9.4 的源代码上看&#xff0c;RocketMQ 的定时任务有很多&#xff0c;今天主要讲解一些核心的定时任务。1 架构…