MySQL (MariaDB) 连接过多且无法关闭?

MySQL (MariaDB) 连接过多且无法关闭?

我最近获得了我的第一个 VPS 来为我的 Minecraft 服务器运行 mysql 服务器,我已经设置了 MariaDB,它目前使用默认设置。我昨晚用一个插件(GriefPrevention v7.8)测试了它,看看是否可以远程使用,它有效,但检查htop现在有数十个 mysql 进程!我只是用这个VPS mysql服务器简单测试了插件,这些打开的连接是否没有关闭?

我尝试重新启动 mysql 但这并没有阻止他们。我还有一个在 VPS 盒子上运行的 Web 界面,可将信息提取到 Web UI 中,但我没有公布 VPS 的 URL,因此不应加载它。

  1. 我怎样才能看到是什么原因造成这些?
  2. 我想按照这个速度,他们都会建立并崩溃服务器?
  3. 我该如何限制这些,应该吗?
  4. 当我推送它们使用它时,我应该为每个插件创建一个新用户来远程访问数据库吗?
  5. 当插件未使用且我已重新启动 mysql 时,为什么这些“连接”仍然打开?

mysql的VPS树HTOP预览

答案1

应该没问题。与该top命令不同,htop默认情况下会列出所有线程以及进程。因此,您看到的所有“mysqld”都不是进程,而是线程。

做这个:

获取您在输出中看到的一些 mysql 条目的 PID htop,并在ps.

例如:

ps -ef | grep 14082

在这里,grep 可能不会向您返回任何 mysql 进程。现在试试这个:

ps -eLf | grep 14082

现在你会看到 grep 返回一个 mysql 进程,它实际上不是一个进程,而是一个线程。

L选项还将要求ps列出所有轻量级进程(线程)。因此 grep 找到了您拥有的 TID,因为它是一个轻量级进程或线程。检查top输出,您可能只会看到一两个 MySQL 进程。

ps -ef此外,从输出中获取 MySQL 进程的 PID ,并用于pstree查看从该进程创建的所有线程。

pstree -p <PIDofMySQL>

相关内容