mysql - 如何在不知道服务名称的情况下从cmd启动mysql服务?

标签 mysql windows-services cmd

我需要检查mysqld服务是否正在运行。但是,该服务的名称可能会有所不同,具体取决于安装该服务的计算机。例如,在一台计算机上它可能被命名为 MySQL56。所以我改用net start mysql56

如何提前获取服务名称?

我尝试了类似 C:\>"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"--defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my .ini" 在 cmd 中,我可以在安装期间或首次启动时更改用户定义的路径,它将启动该服务。

但是,如果我执行该命令,则 cmd 窗口将保持打开状态,等待服务停止。这意味着用户必须手动关闭窗口。有没有办法执行上面的行并使cmd窗口自动关闭?

最佳答案

我不太清楚你想要实现什么目标。您想找出已安装的 MySQL 服务的名称吗?您可以使用wmic为此:

wmic service where "PathName LIKE '%mysqld%'" get DisplayName /value | findstr /i "displayname"
if %errorlevel% equ 0 (
  echo MySQL service installed.
) else (
  echo MySQL service not installed.
)

或者你想开始mysqld不安装服务?您可以使用 --standalone 来做到这一点选项。

set SERVER=%ProgramFiles%\MySQL\MySQL Server 5.6\bin\mysqld
set CONFIG=%ProgramData%\MySQL\MySQL Server 5.6\my.ini
"%SERVER%" --defaults-file="%CONFIG%" --standalone

不过,该进程始终会阻塞控制台,因此如果您希望脚本在 mysqld 时执行其他操作,正在后台运行,您需要在另一个 cmd 中启动它实例:

set SERVER=%ProgramFiles%\MySQL\MySQL Server 5.6\bin\mysqld
set CONFIG=%ProgramData%\MySQL\MySQL Server 5.6\my.ini
start "" "%COMSPEC%" /c "%SERVER%" --defaults-file="%CONFIG%" --standalone

添加选项/b抑制第二个命令提示符窗口:

start "" /b "%COMSPEC%" /c "%SERVER%" --defaults-file="%CONFIG%" --standalone

关于mysql - 如何在不知道服务名称的情况下从cmd启动mysql服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367885/

相关文章:

mysql - 如果数据库表为空则不会删除

c# - 检查 Windows 服务是否正在运行?

C# WMI、性能计数器和 SNMP 天啊!

mysql - 设置变量等于MySQL中的列

mysql - 我可以创建从列中的整数值到它们在 sql 中表示的文本值的映射吗?

德尔福2009 : How to communicate between Windows service & desktop application under Vista?

cmd - DOS ftp 列表到本地文件

java - 将变量传递给java进程

android - 找不到图标路径的 Cordova Android 版本

Java Web 应用程序无法连接到 AWS RDS 数据库实例