MariaDB 是否可能根据用户和密码缓存主机?

MariaDB 是否可能根据用户和密码缓存主机?

我的应用程序中的 MariaDB 出现了一个奇怪的问题。

我用Prisma NodeJS 库连接到 MariaDB。

问题如下:

我有本地主机和具有相同用户名/密码/数据库组合的远程服务器(为了方便我而不需要更改配置)

  1. 我有一个包含用户、密码、主机和数据库的 URL 字符串
  2. 当我将主机更改为远程服务器时,它仍然读取本地主机数据库
  3. 如果我在本地(我的 CLI)更改密码,它会读取远程服务器
  4. 如果我在服务器上更改密码并更新 URL 字符串,情况也是如此

MariaDB 是否有可能将用户/密码/数据库保存在某种缓存中,并根据该缓存获取主机?

我使用 Fedora GNU/Linux 37 和 MariaDB 10.5.18

这是 MariaDB 中的一个错误吗?我应该在某处报告它吗?

我已在 Prisma 上询问过此问题GitHub 上的讨论页面

编辑: 这些是我的 URL 字符串:

  1. DATABASE_URL="mysql://10669_koduj_quiz:<PASSWD>@localhost:3306/10669_koduj_quiz"
  2. DATABASE_URL="mysql://10669_koduj_quiz:<PASSWD>@jcubic.atthost24.pl:3306/10669_koduj_quiz"

笔记:从我的实验中可以明显看出 URL 已被缓存,但我不确定谁对此负责。MariaDB、Prisma 包、用于连接 MySQL 的 NPM 库,或者我的系统上可能有一些由 NodeJS 库使用的共享库。

答案1

MariaDB 不缓存主机连接。但是,已经打开连接如果主机(或用户或密码)信息发生变化但连接未终止,则保持打开状态并正常工作。这意味着如果您有一个打开的连接,并且在不终止该连接的情况下更改了主机/用户/密码,则该连接将保持活动状态,您可以使用它来查询/更新数据库。

换句话说,在建立连接时检查主机/用户/密码信息,不是在查询过程中。

因此,所使用的框架/库可能不会关闭您的连接(即:实现某种形式的连接池和/或其他优化)。

相关内容