当前位置: 首页 > 知识库问答 >
问题:

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

阎扬
2024-09-29

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...

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

共有1个答案

夹谷辰沛
2024-09-29

在 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 (地址已在使用)" 错误。

 类似资料:
  • 问题内容: 在我的Python套接字程序中,有时需要用中断它。当我这样做时,它确实使用关闭了连接。 但是,当我尝试重新打开它时,我必须等待一分钟左右才能重新连接。如何正确关闭插座?还是打算这样做? 问题答案: 是的,这是有意的。在这里您可以阅读详细说明。通过在套接字上设置SO_REUSEADDR选项,可以覆盖此行为。例如:

  • 问题内容: 我正在创建一个简单的flaskapp,然后将其部署在heroku上,这是第一次在heroku上部署python应用程序,说我对gunicorn并不陌生。 其他说明:使用虚拟环境。 烧瓶的版本Flask == 0.10.1 gunicorn == 19.3.0 使用’python run.py’ 工作 使用“开工开始”会出现以下错误 程序文件 档案结构 运行 init.py route.

  • 突然,我得到了下面的nginx错误 如果我跑了 我一无所获。端口 80 上没有任何内容 然后我运行以下命令: 我被难倒了。我该如何调试这个? 我在端口8070上使用代理传递的uwsgi。uwsgi正在运行。Nginx不是。我正在使用ubuntu 12.4 下面是我的nginx conf文件的相关部分 这是我如何在ubuntu 12.04上安装ngin x

  • 问题内容: 运行webdriver时,运行3分钟后,出现以下异常,导致Webdriver崩溃。 我仅使用一个webdriver实例和一个FirefoxDriver配置文件。 问题答案: 您的出站端口已用完。这意味着您在两分钟之内执行了数千个出站连接。解决方案:使用连接池,或降低程序速度。

  • 我试图在Ubuntu 12.04中运行以下命令 并得到以下错误 在检查8080端口时,输出是 我的问题 为什么我会犯错误,以及如何消除这个错误?

  • 问题内容: 我在Windows XP Pro上使用Glassfish 3.0.1,JVM 1.6.0_21; 我不知道我的环境到底发生了什么变化,但是当我尝试部署企业应用程序(ejb模块+应用程序客户端模块)时,我立即获得了该堆栈跟踪信息。 除Glassfish之外,端口3820上没有任何运行。 这可能是什么原因?一些内部过程冲突? 关于如何进一步调试的任何提示? 编辑 这正是我尝试过的: 如您所

  • 问题内容: 我正在遵循http://docs.oracle.com/javase/tutorial/networking/datagrams/broadcasting.html上的UDP教程,现在我已经复制并编译了所有代码,如果我先编译客户端然后再编译服务器,服务器在控制台中将其打印出来 QuoteServerThread行19是 MulticastServerThread行10是 Multica

  • 服务器程序: 客户端程序: 当我执行这个程序时。我收到了这样的错误“java.net.BindException:地址已在使用中:JVM_Bind”但在它正常工作之前。有人能帮我解决这个问题吗?