我需要检查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/