【发布时间】:2012-01-08 10:36:30
【问题描述】:
我正在开发一个 Qt/C++ 项目,它的功能之一是建立一个 MySQL 数据库。那段特定的代码工作正常,但用户必须提供以使其工作的一件事是 MySQL 进程当前正在侦听的端口。这通常是 3306 或 5432,(取决于操作系统...... MySQL 通常希望首先使用 3306,但我曾经尝试过使用 Postgres 端口)但我觉得我需要考虑奇怪的配置。许多用户不知道在该字段中输入什么,除非他们对 MySQL 有足够的了解,知道它使用了哪些端口。 (大多数人不这样做)我的程序的目标受众是每个可能想要保留计算机日记的人,所以如果程序可以自己找到正确的端口,那就太好了。
我可以让程序通过常用端口列表运行,直到找到正确的端口(这在大多数设置中都应该工作),但如果它能够真正确定要使用哪个端口会更好。这样,如果用户由于某种原因有一个奇怪的配置,就不会有任何问题。
知道我会怎么做吗?我试过谷歌搜索,但没有发现任何相关内容。
【问题讨论】:
-
在每个端口上打开一个socket,并遵循MySQL连接协议的第一位。或者,只需让您的 MySQL 驱动程序尝试连接一堆端口。请注意,这两者都会有点慢。