Ubuntu(WSL) 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. 创建构建目录

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

cd mysql-8.0.31 
sudo mkdir build 
cd build

6. 配置构建选项

运行 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 命令安装对应包,然后再次执行即可。

7. 编译和安装

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

sudo make -j4 
sudo make install

8. 配置 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;

9. 初始化

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

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

10. 寻找初始密码

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

11. 启动 mysql

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

12. 设置 mysql 密码

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

13. mysql8.0.31 源码安装完成

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

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

相关文章

Wix使用velo添加Google ads tag并在form表单提交时向谷歌发送事件

往head里加代码时,不能看谷歌的代码,要看wix的代码,不然必定踩坑 https://support.wix.com/en/article/tracking-google-ads-conversions-using-wix-custom-code 这里的代码才对,因为wix搞了个velo,这个velo很傻x&am…

ChatGPT、GPT-4 Turbo接口调用

接口地址 https://chat.xutongbao.top/api/light/chat/createChatCompletion 请求方式 post 请求参数 model可选值: “gpt-3.5-turbo-1106”、 “gpt-3.5-turbo-16k” 、 “gpt-4”、“gpt-4-1106-preview”。 默认值为: “gpt-3.5-turbo-1106” to…

时间序列预测模型实战案例(十)(个人创新模型)通过堆叠CNN、GRU、LSTM实现多元预测和单元预测

本文介绍 本篇博客为大家讲解的是通过组堆叠CNN、GRU、LSTM个数,建立多元预测和单元预测的时间序列预测模型,其效果要比单用GRU、LSTM效果好的多,其结合了CNN的特征提取功能、GRU和LSTM用于处理数据中的时间依赖关系的功能。通过将它们组合在…

基于GCC的工具objdump实现反汇编

一:objdump介绍 在 Linux中,一切皆文件。 Linux 编程实际上是编写处理各种文件的代码。系统由许多类型的文件组成,但目标文件具有一种特殊的设计,提供了灵活和多样的用途。 目标文件是包含带有附加地址和值的助记符号的路线图。这…

PHP编写采集药品官方数据的程序

在 PHP 中编写爬虫程序,首先我们需要引入一些必要的库,如 curl 和 file_get_contents。然后,我们需要设置爬虫ip信息,以便我们可以从指定的爬虫ip服务器上获取数据。 // 引入必要的库 require_once curl.php;// 设置爬虫ip信息 $p…

招聘信息采集

首先&#xff0c;我们需要使用PHP的curl库来发送HTTP请求。以下是一个基本的示例&#xff1a; <?php // 初始化curl $ch curl_init();// 设置代理 curl_setopt($ch, CURLOPT_PROXY, "jshk.com.cn");// 设置URL curl_setopt($ch, CURLOPT_URL, "http://www…

leetcode一道比较难的链表题

今天还是继续来分享我们的链表题&#xff0c;这个题目有点难&#xff0c;主要是思路比较难想&#xff0c;但是如果沥青思路写起来就比较简单了&#xff08;我乱讲的&#xff09; 随机链表的复制 这个是题目的描述&#xff0c;大家也可以在链接里看&#xff0c;那我把这道题目…

VNC连接服务器实现远程桌面 --以AutoDL云服务器为例

VNC连接服务器实现远程桌面 --以AutoDL云服务器为例 针对本地机为Windows 云服务器租显卡跑些小模型很方便&#xff0c;但是当你想做可视化的时候&#xff0c;可能会遇到麻烦&#xff0c;云服务器没有显示输出界面&#xff0c;无法可视化一些检测任务的结果&#xff0c;或者可…

chrome 的vue3的开发者devtool不起作用

问题&#xff1a; 刚刚vue2升级到vue3&#xff0c;旧的devtool识别不了vue3数据。 原因&#xff1a; devtool版本过低。升级到最新。 解决&#xff1a; 去github下载vuetool项目代码&#xff1a; GitHub - vuejs/devtools: ⚙️ Browser devtools extension for debugging…

Dell戴尔灵越Inspiron 7700 AIO一体机电脑原厂预装Windows10系统

链接&#xff1a;https://pan.baidu.com/s/1-slgR9t4Df_eko0Y6xaeyw?pwdmk0p 提取码&#xff1a;mk0p 灵越7700一体机原装出厂系统自带声卡驱动、无线网卡驱动、面部识别等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 由于时间关系,…

GEE ——errors & debuggings (2023GEE峰会总结)

简介&#xff1a; 在gee中有三种错误&#xff0c;一种就是系统错误&#xff0c;也就是我们看到的会在JavaScript code editor中出现的错误&#xff0c;也就是在程序还没有启动之前就会提示的错误&#xff0c;而客户端错误则主要是会提示一些在代码过程中的错误&#xff0c;比如…

【数据结构】树与二叉树(八):二叉树的中序遍历(非递归算法NIO)

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

从零开始的C++(十四)

继承&#xff1a; 作用&#xff1a;减少重复代码&#xff0c;简化程序。 用法&#xff1a; class b&#xff1a;public a {//...b中成员 } 在如上代码中&#xff0c;b类以public的方式继承了a类。规定a类是父类、基类&#xff0c;b类是子类、派生类。 关于继承方式&#xf…

力扣字符串--总结篇

前言 字符串学了三天&#xff0c;七道题。初窥kmp&#xff0c;已经感受到算法的博大精深了。 内容 对字符串的操作可以归结为以下几类&#xff1a; 字符串的比较、连接操作&#xff08;不同编程语言实现方式有所不同&#xff09;&#xff1b; 涉及子串的操作&#xff0c;比…

Electron-vue出现GET http://localhost:9080/__webpack_hmr net::ERR_ABORTED解决方案

GET http://localhost:9080/__webpack_hmr net::ERR_ABORTED解决方案 使用版本解决方案解决总结 使用版本 以下是我解决此问题时使用的electron和vue等的一些版本信息 【附】经过测试 electron 的版本为 13.1.4 时也能解决 解决方案 将项目下的 .electron-vue/dev-runner.js…

【PWN · ret2csu】[HNCTF 2022 WEEK2]ret2csu

记一道ret2csu 一、题目 二、思路 1.ret2csu用write泄露write的真实地址->泄露libc->获得system的真实地址 2.ret2csu用read写/bin/sh字符串到bss段上 3.ret2csu用write将system的真实地址写到bss段上 4.ret2csu调用system 三、exp from pwn import * from pwn impo…

[100天算法】-最短无序连续子数组(day 70)

题目描述 给定一个整数数组&#xff0c;你需要寻找一个连续的子数组&#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。你找到的子数组应是最短的&#xff0c;请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15] 输出: 5 解释: 你只需要…

Linux下内网穿透实现云原生观测分析工具的远程访问

&#x1f4d1;前言 本文主要是Linux下内网穿透实现云原生观测分析工具的远程访问设置的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &…

[C/C++]数据结构 链表OJ题:环形链表(如何判断链表是否有环)

题目描述: 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…

Docker+K8s基础(重要知识点总结)

目录 一、Docker的核心1&#xff0c;Docker引擎2&#xff0c;Docker基础命令3&#xff0c;单个容器运行多个服务进程4&#xff0c;多个容器运行多个服务进程5&#xff0c;备份在容器中运行的数据库6&#xff0c;在宿主机和容器之间共享数据7&#xff0c;在容器之间共享数据8&am…