MySQL Java 中的模拟器

MySQL emulator in Java

如何将 Java 应用程序绑定到 MySQL 数据库当前 运行 的端口以模拟 MySQL 数据库?

我正在开发身份验证系统和 MySQL 数据库之间的中间件。到目前为止开发的所有应用程序都直接连接到 MySQL 数据库,我的目标是开发一个要模拟数据库的 Java 应用程序:接收传入请求(查询),执行一些操作(排队、检查等),将请求发送到 MySQL 数据库,接收响应,并将响应发送回调用方。

我无法找到 MySQL 请求格式的详细信息。绑定到特定端口后,如何解析传入的 MySQL 请求?在此过程中保持连接也很重要,这样其他应用程序就不会认为存在连接问题。

您可以轻松地将 Java 应用程序绑定到端口 3306(MySQL 的默认端口号),只要 MySQL 没有在同一台机器上使用它。

但是,为了了解通过该端口使用的协议,您可能需要深入研究 MySQL 源代码。 MySQL 有一个“Guided tour of the MySQL source code”,这可能是一个很好的起点。

我决定自己实现MySQL连接协议,参考MySQL Internals - Connection Phase。查看连接器的现有开源实现也有助于理解细节。本质上,我在 Java 中实现了一个非常基本的自定义 MySQL 代理服务器。