WSL2 核心中间件部署实战:MySQL、Redis 与 RocketMQ

欢迎关注专栏: AI 开发技术

  • 上一篇: WSL2 全栈开发环境搭建 基于 SDKMAN 与 NVM 在 WSL2 中搭建并管理多版本 Java 与 Node.js 环境。
  • 下一篇: **云计算基础与容器技术演进** 探讨从传统云计算服务模型到容器技术演进的核心逻辑。

WSL2 核心中间件部署实战:MySQL、Redis 与 RocketMQ

文章目录

  • [WSL2 核心中间件部署实战:MySQL、Redis 与 RocketMQ](#WSL2 核心中间件部署实战:MySQL、Redis 与 RocketMQ)
    • [1. 业务背景 / 核心问题](#1. 业务背景 / 核心问题)
    • [2. 关系型数据库:MySQL 8.0 部署](#2. 关系型数据库:MySQL 8.0 部署)
      • [2.1 安装与启动](#2.1 安装与启动)
      • [2.2 初始化与权限配置 (关键)](#2.2 初始化与权限配置 (关键))
      • [2.3 环境问题排查:Socket 连接异常](#2.3 环境问题排查:Socket 连接异常)
    • [3. 内存数据库:Redis 部署](#3. 内存数据库:Redis 部署)
    • [4. 消息队列:RocketMQ 部署](#4. 消息队列:RocketMQ 部署)
      • [4.1 下载与解压](#4.1 下载与解压)
      • [4.2 启动 NameServer 与 Broker](#4.2 启动 NameServer 与 Broker)
    • [5. 总结](#5. 总结)

关键词 :MySQL, Redis, RocketMQ, 服务部署, 错误排查
阅读耗时:约 12 分钟

本文为个人技术学习笔记分享,记录工程实践过程,仅供参考。


1. 业务背景 / 核心问题

在全栈项目开发中,数据库与消息队列是不可或缺的底层支撑。本文旨在探讨如何在 WSL2 (Ubuntu 22.04) 环境下,脱离重量级的虚拟化或云服务器,快速在本地拉起一套轻量但功能完备的核心中间件体系,为业务代码(如 Spring Boot)提供稳定调用支持。

2. 关系型数据库:MySQL 8.0 部署

2.1 安装与启动

通过 Ubuntu 自带包管理器安装并启动服务:

bash 复制代码
sudo apt install -y mysql-server
bash 复制代码
sudo service mysql start

验证进程状态是否正常:

bash 复制代码
sudo service mysql status

2.2 初始化与权限配置 (关键)

新安装的 MySQL 默认 root 账户没有配置安全密码,需通过 socket 通道登录并手动初始化认证插件:

bash 复制代码
# 无密码模式登入
sudo mysql

在 MySQL CLI 中执行提权与密码重置语句:

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[密码口令]';
FLUSH PRIVILEGES;
exit;

2.3 环境问题排查:Socket 连接异常

问题描述 :在外部使用 mysql -u root -p 尝试登录时,报错:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

问题剖析 :客户端默认去 /tmp/mysql.sock 寻找套接字文件,而实际上服务端生成的套接字路径位于 /var/run/mysqld/mysqld.sock。

解决路径:通过建立软链接桥接客户端与服务端:

bash 复制代码
sudo ln -sf /var/run/mysqld/mysqld.sock /tmp/mysql.sock

重新登录即可成功。在 Spring Boot 配置中,也可正常使用该本地实例:

properties 复制代码
spring.datasource.url=jdbc:mysql://localhost:3306/cryptalib?useSSL=false&serverTimezone=UTC

以接入 springboot 为例:

json 复制代码
spring.datasource.url=jdbc:mysql://localhost:3306/cryptalib?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=[密码口令]

3. 内存数据库:Redis 部署

Redis 在 WSL 下的本地部署相对简单,直接作为系统服务拉起:

bash 复制代码
sudo apt install -y redis-server
sudo service redis-server start

验证连通性:

bash 复制代码
redis-cli ping
# 返回 PONG 即为成功

4. 消息队列:RocketMQ 部署

RocketMQ 依赖 Java 运行时。为满足版本要求(建议 JDK 8 或 JDK 11),我们优先利用之前安装好的 sdkman 环境切换到 JDK 11:

bash 复制代码
sdk use java 11.0.20-tem

4.1 下载与解压

推荐使用多线程工具 aria2 加速从 Apache 官方下载发布包:

bash 复制代码
sudo apt install -y aria2
cd ~/Download
aria2c -x 16 -s 16 https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip

unzip rocketmq-all-4.9.4-bin-release.zip
cd rocketmq-all-4.9.4-bin-release

4.2 启动 NameServer 与 Broker

为避免关闭终端导致服务进程掉线,需使用 nohup 进行后台启动:

bash 复制代码
# 1. 后台启动 NameServer
nohup sh bin/mqnamesrv &

# 2. 后台启动 Broker,并指向本地 NameServer
nohup sh bin/mqbroker -n localhost:9876 &

5. 总结

本文展示了在 WSL2 下直接部署三剑客(MySQL, Redis, RocketMQ)的标准流程,并重点对 MySQL 客户端连通性报错提供了解决思路。建立本地中间件底座后,可为全栈应用的快速调试与原型验证提供有效支持。

相关推荐
七牛开发者21 分钟前
从 GLM 到 GPT,HarnessPro 如何用 RSI 降低 Agent 成本
人工智能·gpt·agent·harness·rsi
跨境卫士-小汪1 小时前
TikTokShop欧洲商品接口架构调整跨境技术团队需要做好哪些准备
大数据·人工智能·新媒体运营·跨境电商·跨境·营销策略
古法老登瞎折腾2 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
飞Link2 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
康小汪2 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
收放扳机2 小时前
多机连线(In-Line)场景下,收放板机“缓存工位”的容量与架构选型参考
人工智能·科技·自动化·制造·pcb工艺
曲径海盗2 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
武天旭2 小时前
AI安全--AI大模型的后门攻击检测与防御
人工智能·深度学习·安全·机器学习
智能运维指南3 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
人工智能AI技术3 小时前
DeepInfer开源炸场!别再妄想个人电脑跑满血DeepSeek
人工智能