wsl2 mysql error: 98 (地址已在使用)?

WSL2 Ubuntu

 systemctl status mysql
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: activating (start) since Sat 2024-09-28 08:31:49 CST; 1s ago
    Process: 1196 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 1204 (mysqld)
     Status: "Server startup in progress"
      Error: 98 (地址已在使用)
      Tasks: 30 (limit: 9528)
     Memory: 382.9M
     CGroup: /system.slice/mysql.service
             └─1204 /usr/sbin/mysqld

9月 28 08:31:49 TsuiQG-PC systemd[1]: Starting MySQL Community Server...

突然就这样了,有你人见过?

阅读 1k
avatarAI BotBETA

在 WSL2 中遇到 MySQL 服务启动错误 "Error: 98 (地址已在使用)" 通常意味着 MySQL 试图绑定的端口(默认是 3306)已经被其他服务或进程占用。以下是一些解决步骤:

1. 检查端口占用

首先,你需要检查哪个进程正在使用 3306 端口。你可以使用 netstatss 命令来查看:

sudo netstat -tulnp | grep 3306
# 或者
sudo ss -tulnp | grep 3306

如果看到输出中有进程ID(PID)和对应的程序名,那么你需要决定是停止那个进程还是更改 MySQL 的配置以使用不同的端口。

2. 停止占用端口的进程

如果确定那个进程不再需要,你可以停止它。如果它是 MySQL 的一个旧实例,你可能需要手动杀死它。使用 kill 命令:

sudo kill -9 PID

PID 替换为你从 netstatss 命令中看到的实际进程ID。

3. 更改 MySQL 的端口

如果你不想停止那个进程,或者它属于其他重要的服务,你可以更改 MySQL 的配置以使用不同的端口。编辑 MySQL 的配置文件(通常是 /etc/mysql/my.cnf 或者在 /etc/mysql/mysql.conf.d/ 目录下的某个文件):

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 [mysqld] 部分,并添加或修改 port 指令:

[mysqld]
port=3307

更改后保存文件并重启 MySQL 服务:

sudo systemctl restart mysql

4. 检查 MySQL 是否启动成功

再次检查 MySQL 的状态:

sudo systemctl status mysql

确保没有错误,并且状态是 active (running)

5. 更新你的应用程序连接配置

如果你更改了 MySQL 的端口,确保更新所有连接到 MySQL 的应用程序或服务的配置,以使用新的端口号。

按照这些步骤,你应该能够解决 MySQL 服务启动时的 "Error: 98 (地址已在使用)" 错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏