WSL2 Ubuntu24.04 安装 mysql-8.4 踩坑记录

186 阅读2分钟

前言

由于 wsl2 展现出了一定的优势,我决定尝试将开发环境从 VMware + Ubuntu 桌面转向 wsl ubuntu 24.04 安装服务,同时直接在 windows 桌面进行开发。

安装好 wsl2 之后,第一步我需要安装一些基础服务,主要就是 Nginx 和 MySQL,Nginx 安装很顺利,但是我在安装 MySQL 的时候遇到了一些麻烦。

由于原本安装在 VMware 里面的实例使用的是 MySQL 8.4 版本,所以我希望也安装 8.4 的版本。

下面仅记录我最后摸索成功的安装过程,错误部分的尝试就不记录了。

鸣谢:ChatGPT 老师


0x00. 官方安装指引

参考官方文档:dev.mysql.com/doc/refman/…

不用照着官方文档做,按我说的做就可以:

下载配置 deb 文件(版本基于 2024-10-21,新鲜的版本请实时确认)
wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
安装之
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb

image.png

然后选择 mysql-8.4-lts,OK 退出。

APT 更新,安装
sudo apt update
sudo apt install mysql-server

0x01. 手动配置服务

以上,一切顺利的话应该是安装成功的,但是 service mysql restart 的时候就懵逼了,没有服务:

mysql: unrecognized service
没有服务的启动方法
sudo /etc/init.d/mysql start

这样能启动成功,说明安装还是好的,继续往后搞。

错误情况下的重新配置

但是如果出了什么岔子,需要重新刷掉数据重新配置,需要这样搞:

!!! WARNING !!! 注意这样会全部删库重置数据,执行前请明确知道你自己在干什么。

rm -rf /var/lib/mysql
sudo mysqld --initialize --user=mysql --datadir=/var/lib/mysql

这个时候会把默认 root 密码打出来,小本本记一下。

image.png

手动启动 mysqld,并设置 root 密码为 root

启动 mysqld

sudo /usr/sbin/mysqld --datadir=/var/lib/mysql --user=mysql --daemonize

启动初始设置

sudo mysql_secure_installation

下面的脚本即可重设 root 用户的配置。

image.png

手动配置服务

由于服务不存在,这个时候得自己手动把服务配置上去,编辑 /etc/systemd/system/mysql.service

[Unit]
Description=MySQL Community Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/sbin/mysqld
ExecStop=/usr/bin/mysqladmin shutdown
LimitNOFILE=5000

[Install]
WantedBy=multi-user.target
配置当前用户免密码

编辑 ~/.my/cnf

[client]
user=root
password=root

然后直接 mysql 应该就提示不需要密码了。

服务自启动设置
systemctl enable mysql
# 查看自启动情况
 systemctl list-unit-files --type=service | grep enabled