我正在尝试收集在 Windows 上运行的进程的识别信息。我无法发现“mysqld.exe”和“mysqld-nt.exe”二进制文件之间的区别。它们有什么区别?每个都提供哪些功能?
谢谢。
答案1
我相信它们是同一件事,即后台服务(又名守护进程),即 MySQL 程序/接口。
据我所知,“-nt”在 MySQL 5 左右从 Windows 版本中删除(重命名为 Mysqld.exe)。
不幸的是我没有来源可以引用,但是我们的 MySQL 服务器运行 5.x,并且它们都没有 mysqld-nt.exe 文件,但我知道我曾经在(遥远的)过去见过它。
答案2
区别在于:mysqld-nt.exe
MySQL 版本利用了名为命名管道的特定 Windows 通信协议。
根据这本书
第 23 章第 352、353 页,标题为“23.2 通信协议”的部分
要点 #3 说
命名管道约定仅在 Windows 上受支持,并且仅当您使用名称中包含 的服务器之一
-nt
(mysql-nt、mysql-max-nt)时才受支持。但是,默认情况下禁用命名管道。要启用命名管道连接,您必须-nt
使用该--enable-named-pipe
选项启动服务器。
书中是这样介绍的。我认为这是一个拼写错误。说的部分(mysql-nt, mysql-max-nt)
应该是(mysqld-nt, mysqld-max-nt)
。尽管如此,使用命名管道可能被用作在 Windows 中进行 localhost 主机连接的替代方案。
三年前,我在 DBA StackExchange 上发表了一篇文章(MySQL-NT 频繁崩溃)讨论如何摆脱它,尤其是因为2011 年 4 月停产。
如果你正在跑步mysqld-nt.exe
,但你不知道--启用命名管道选项,命名管道未启用(默认)。因此,mysqld-nt.exe
其行为与 完全相同mysqld.exe
。我还是会避开它,直接使用mysqld.exe
。