Ubuntu(WSL2) mysql8.0.31 源码安装

要在 Ubuntu 上使用调试功能安装 MySQL 8.0 的源码,可以按照以下详细步骤进行操作:

1. 更新系统

首先,确保你的 Ubuntu 系统是最新的。运行以下命令更新系统软件包:

sudo apt update 
sudo apt upgrade

2. 下载 MySQL 源码

访问 MySQL 官方网站(MySQL :: Download MySQL Community Server)并下载 MySQL 8.0 的源码包(mysql-boost-8.0.31.tar.gz)。

3. 安装编译依赖

(1)更换镜像源

参考:Linux Ubuntu 修改 /etc/apt/sources.list (镜像源)文件(非常实用)-CSDN博客

(2)安装 gcc

sudo apt install gcc-11

(3)安装构建 MySQL 所需的编译依赖。运行以下命令安装所需的软件包:

sudo apt install build-essential cmake libncurses5-dev libssl-dev libboost-all-dev gdb

注意,我们添加了 gdb 软件包,它是用于调试的工具。

4. 解压源码包

将下载的源码包解压到一个目录中。假设你将其解压到 /usr/local 目录下。

sudo tar xvf mysql-boost-8.0.31.tar.gz

5. 创建用户和组

groupadd mysql
useradd -r -g mysql -M -s /bin/false mysql
//参数说明:-M 不创建家目录 -s 指定 -r 创建系统账户

6. 创建构建目录

进入解压后的 MySQL 源码目录,并创建一个用于构建的目录。

cd mysql-8.0.31 
sudo mkdir build 
cd build

7. 配置构建选项

运行 cmake 命令来配置构建选项。你可以根据需要自定义选项,下面是一个示例:

sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/lib/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DWITH_DEBUG=1

注意,我们添加了 -DWITH_DEBUG=1 选项来启用调试功能。

上述命令是用于配置和构建 MySQL 数据库的 CMake 命令。下面是每个选项的解释:

  • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql:指定 MySQL 安装的路径。在这里,MySQL 将被安装到 /usr/local/mysql 目录下。
  • -DMYSQL_DATADIR=/var/lib/mysql:指定 MySQL 数据文件的存储路径。在这里,数据文件将被存储在 /var/lib/mysql 目录下。
  • -DSYSCONFDIR=/etc/mysql:指定 MySQL 配置文件的存储路径。在这里,配置文件将被存储在 /etc/mysql 目录下。
  • -DWITH_INNOBASE_STORAGE_ENGINE=1:启用 InnoDB 存储引擎支持。InnoDB 是 MySQL 的默认存储引擎,提供了事务支持和高级数据管理功能。
  • -DWITH_MEMORY_STORAGE_ENGINE=1:启用 Memory 存储引擎支持。Memory 存储引擎将数据存储在内存中,适用于需要快速读写操作的场景。
  • -DWITH_PARTITION_STORAGE_ENGINE=1:启用 Partition 存储引擎支持。Partition 存储引擎允许将表分割成多个分区,以提高查询性能和管理大量数据。
  • -DWITH_BOOST=/usr/include/boost:指定 Boost 库的路径。Boost 是一个 C++ 库集合,MySQL 在某些功能上使用了 Boost 库。
  • -DWITH_DEBUG=1:启用调试模式,编译生成带有调试信息的 MySQL 可执行文件。这对于开发和调试 MySQL 可能会有帮助。

这些选项允许你根据需要自定义 MySQL 的构建和安装过程。根据你的需求,可以调整这些选项的值或添加其他选项来满足特定的配置需求。

说明:

  • 上述 sudo cmake 命令后面的 -DDOWNLOAD_BOOST=1 -DWITH_BOOST= 指令是告诉 CMake 在指定的目录中查找 Boost 库,如果找不到,则自动下载并解压。,其中  是你保存 Boost 库的目录路径。
  • 直接使用 sudo cmake 命令下载 Boost 库可能会出现失败,失败时多尝试几次。
  • 手动下载并解压,放到指定路径下即可,下载连接:Boost 库,使用该方式如果报如下错误,则执行 sudo apt install pkg-config 命令安装对应包,然后再次执行即可。

8. 编译和安装

运行 make 命令编译 MySQL,并使用 make install 命令安装到指定目录。

sudo make -j4 
sudo make install

9. 配置 my.cnf 文件

vi /etc/my.cnf//my.cnf文件内容如下[client] 
socket=/usr/local/mysql/data/mysql.sock [mysqld] 
datadir=/usr/local/mysql/data 
socket=/usr/local/mysql/data/mysql.sock #Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=0 
log-error=/usr/local/mysql/data/mysqld.log 
pid-file=/usr/local/mysql/data/mysqld.pid 
server-id=1

说明:my.cnf文件中的 /usr/local/mysql 为mysql安装路径,根据自己情况进行更改,该mysql安装目录为:/usr/local/mysql;

10. 初始化

# 进入安装目录 
cd /usr/local/mysql # 初始化 
bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --port=3306

说明:初始化文件 my.cnf 可以放在不同的文件夹下(一台机器上装多个 mysql 时,可以在不同的文件夹下创建 my.cnf),但初始化命令中使用到的 my.cnf 路径要与其保持一致;

11. 寻找初始密码

初始化完成后,找到 mysql 安装目录下的 data 文件夹,初始化密码在 mysqld.log 日志中,自行找到即可,然后用初始密码进行登陆;初始密码实例如下:

12. 启动 mysql

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --port=3306 &

13. 设置 mysql 密码

# 执行下述命令并使用初始密码进入 
mysql /usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -p -P3306 ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

14. mysql8.0.31 源码安装完成

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

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

相关文章

通讯协议学习之路(实践部分):UART开发实践

通讯协议之路主要分为两部分,第一部分从理论上面讲解各类协议的通讯原理以及通讯格式,第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN;视频会发布在bilibili(UID:399951374) 本文…

gpt支持json格式的数据返回(response_format: ‘json_object‘)

Api.h5.chatCreateChatCompletion({model: gpt-3.5-turbo-1106,token: sk-f4fe8b67-fcbe-46fd-8cc9-fd1dac5d6d59,messages: [{role: user,content:使用json格式返回十二生肖,包含中文名和英文名,[{id:"1", enName:"", cnName: &quo…

初始MySQL(二)(表的增删查改)

目录 修改表 CRUD(增删改查) insert语句(表中增加数据) update语句(修改表中的数据) delete删除语句 select语句 修改表 添加列 ALTER TABLE tablename ADD (column datatype [DEFAULT expr] [, column datatype] ...); 修改列 ALTER TABLE tablename MODIFY (column …

ROS机器人毕业论文数量井喷-数据日期23年11月13日

背景 ROS机器人论文数量在近3年井喷发展,仅硕士论文知网数据库可查阅就已经达到2264篇,实际相关从业者远远远大于这个数值。 按日期排序,每页20篇,23年还未结束,检索本身也不一定完备,就超过200。 相关从业…

语音识别芯片在产品应用上的难点列举

语音识别技术,作为人工智能领域中的一颗璀璨明珠,已经广泛应用于用户交互、智能家居、语音助手等多个领域。它为我们的生活带来了诸多便利,使得我们可以更加高效地与电子设备进行互动。然而,语音识别技术的实现,依赖于…

PostgreSQL 入门教程

PostgreSQL 入门教程 1. 历史背景2. 概念3. 特点4. 用法4.1 数据库连接4.2 数据库创建4.3 表创建4.4 数据插入4.5 数据查询4.6 数据更新4.7 数据删除 5. 安装步骤6. 简单示例7. 扩展7.1 数据类型7.2 查询优化7.3 并发控制7.4 数据备份和恢复7.5 扩展性和高可用性7.6 安全性加固…

pyTorch Hub 系列#2:VGG 和 ResNet

一、说明 在上一篇教程中,我们了解了 Torch Hub 背后的本质及其概念。然后,我们使用 Torch Hub 的复杂性发布了我们的模型,并通过相同的方式访问它。但是,当我们的工作要求我们利用 Torch Hub 上提供的众多全能模型之一时,会发生什么? 在本教程中,我们将学习如何利用称为…

「Verilog学习笔记」4bit超前进位加法器电路

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 timescale 1ns/1nsmodule lca_4(input [3:0] A_in ,input [3:0] B_in ,input C_1 ,output wire CO ,output wire [3:0] …

SpringBoot3+Vue3+Mysql+Element Plus完成数据库存储blob类型图片,前端渲染后端传来的base64类型图片

前言 如果你的前后端分离项目采用SpringBoot3Vue3Element Plus,且在没有OSS(对象存储)的情况下,使用mysql读写图片(可能不限于图片,待测试)。 耗时三天,在踩了无数雷后&#xff0c…

Lightroom Classic 2023 v12.4

Lightroom Classic 2023是一款图像处理软件,是数字摄影后期制作的重要工具之一。与其他图像处理软件相比,Lightroom Classic具有以下特点: 高效的图像管理:Lightroom Classic提供了强大的图像管理功能,可以轻松导入、…

网易数帆:云原生向左,低代码向右

网易数帆,前身是网易杭州研究院于2016年孵化的网易云,历经7载探索与沉淀,如今已进化成为覆盖云原生、低代码、大数据和人工智能四大技术赛道的数智化服务提供商,服务于金融、央国企、能源、制造等领域300余家头部企业。 近日&…

怎么录制游戏视频?超简单步骤,一看就会!

随着游戏产业的不断发展,录制游戏视频成为许多玩家记录游戏过程、分享游戏体验的重要方式。但是很多人不知道怎么录制游戏视频,其实一款好的录屏软件可以使游戏视频的录制变得更加简单、高效。本文将介绍两种录制游戏视频的方法,这两种方法各…

【LeetCode:307. 区域和检索 - 数组可修改 | 树状数组 or 线段树】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

阿里云国际站:云备份

文章目录 一、阿里云云备份的概念 二、云备份的优势 三、云备份的功能 四、云备份的应用场景 一、阿里云云备份的概念 云备份作为阿里云统一灾备平台,是一种简单易用、敏捷高效、安全可靠的公共云数据管理服务,可以为阿里云ECS整机、ECS数据库、文件…

马达加斯加市场开发攻略,收藏一篇就够了

马达加斯加是位于非洲南部一个国家,虽然经济是比较落后的一个国家,但是一直以来跟中国的关系都还不错,生产生活资料也是比较依赖进口的,市场潜力还是不错的。今天就来给大家分享一下马达加斯加的相关攻略。大家点赞收藏关注慢慢看…

如何成功创建百度百科词条?教你从零开始创建自己的百度百科【建议收藏】

百度百科是一个开放的网络百科全书,用户可以自由编辑和贡献内容。如果你想创建一个百度百科页面,需要做好以下准备: 1.确定主题:选择一个你熟悉或者感兴趣的主题,确保该主题在百度百科上还没有相关的页面。 2.收集资…

【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

🦄 个人主页——🎐个人主页 🎐✨🍁 🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!&…

数据结构线性表——带头双向循环链表

前言:小伙伴们好久不见啦,上篇文章我们一起学习了数据结构线性表其一的单链表,了解了单链表的不少好处,但是不可能有完美的数据结构,就算是单链表,也会有很多缺点。 那么今天这篇文章,我们就来…

【debug】解决Kali虚拟机开机黑屏,左上角光标一直闪动无法开机问题

做网络攻防实验时,突然Kali无法打开,遇到这个问题。。。。。。 遇到的问题 突然kali虚拟机变成如下黑屏,无法开机,左上角光标闪动,重启无效。 解决办法 在上图界面,按Ctrl F3(不同电脑快捷键…