Ubuntu(WSL2) 源码安装 mysql8.0/mysql5.7

要在 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

//第一个mysql是指用户名,第二个mysql是指组名
//参数说明:-M 不创建家目录 -s 指定 -r 创建系统账户
useradd -r -g mysql -M -s /bin/false mysql
  • -r选项表示创建一个系统用户(系统用户通常用于运行服务或应用程序)。
  • -g mysql选项指定将用户添加到名为mysql的用户组中。
  • -M选项表示不要创建用户的主目录。
  • -s /bin/false选项将用户的登录 shell 设置为/bin/false,这将禁止用户通过登录 shell 登录系统。

该命令的目的是创建一个名为mysql的系统用户,并将其添加到mysql用户组中。该用户将没有登录权限,因为其登录 shell 被设置为/bin/false。这样的用户通常用于运行MySQL服务,以提供更安全的环境。

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 5.7需要使用特定版本的Boost库。在MySQL 5.7的源码中,会提供一个boost文件夹,其中包含了所需的Boost库版本。您可以在编译安装MySQL时,通过指定Boost库的路径来解决依赖关系。)

上述命令是用于配置和构建 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 可能会有帮助。

如果需要修改字符集,可在执行 cmake 命令时,加入下列两个参数:

-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci

这些选项允许你根据需要自定义 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 密码

# 执行下述命令并使用初始密码进入 
/usr/local/mysql/bin/mysql -h127.0.0.1 -uroot -p -P3306 

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

14. mysql8.0.31 源码安装完成

  • 19
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据库内核

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值