2011-12-15 62 views
1

保存MySQL服务器实例的windows服务的默认名称是'MySQL'。但是MySQL 5.5允许用户在安装后为其指定任何名称。现在我需要知道MySQL的Windows服务的名称,但我不明白我的应用程序应该在哪里寻找这个名字。我试图特别让这个名字不寻常,然后找到MySQL将它存储在系统中的位置。但这个不寻常的名字只在Windows注册表的服务列表中。 my.ini,my-huge.ini和MySQL服务器的其他ini文件不包含有关如何命名windows服务的信息。那么MySQL在哪里存储这个名字? Windows版本:7 X86/X64,MySQL版本:5.5。 在此先感谢。查找MySql服务器实例的windows服务名称

回答

0

MySQL不需要在任何地方存储这个名字。服务器进程由Windows服务控制器启动,客户端通过网络与服务器进行通信,因此它不需要知道名称。正如您发现的,唯一出现的位置是注册表中的服务列表。考虑到在Linux上,守护进程不像Windows服务那样有特殊的名称。服务名称是在Windows上运行的工件,MySQL不知道或关心它。

+1

这是真的,但如果我们在初始指定服务名称后启动'MySQL实例配置向导',我们可以在向导的步骤之一中看到Windows服务的名称。 MySQL Workbench在“创建新服务器实例配置文件”表单中也知道这个名称。所以它存储在某个地方,但不容易找到它。 – Shoar

3

MySQL的新手,我遇到了同样的问题。我做了什么来解决此设置实例shared_memory_base_name相同的服务名称在ini:

# shared_memory 
shared_memory_base_name=MySQLServiceName 

这使得通过系统变量@@ shared_memory_base_name可用它。我实际上不启用共享内存连接,只需设置变量。

我还没有在Linux上试过,虽然也许设置@@ socket系统变量可以提供相同的功能。

我意识到这是一个有点晚来帮助你了,但有人可能会发现它很有用...

+0

如果你不知道答案问你的意见成cooment ...不正确的新答案 –

1

它存储在注册表中。 MySQL实例配置向导读取包含名称以及对应服务.exe的路径的注册表。

但我不完全知道如何以编程方式查找这些注册表项。

PS:该条目可能可以在这里找到:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL[xy]

(xy为版本,如:57为5.7)

服务名被存储在这里键 “显示名称” 和“ImagePath”中的.exe路径。

注意:这些路径也可能包含启动参数,如my.ini文件的路径。