C# 如何从C内置的应用程序中检测安装并自动启动MySQL服务器
我正在为使用MySQL服务器的客户端开发一个C桌面应用程序。我的客户机要求的是,数据库服务器应该在应用程序启动时启动,也应该在应用程序退出时停止。我知道如何使用process启动C中的进程。start但我不知道的是如何检测MySQL服务器的安装路径并启动服务器,因为我的客户端的条件是服务器安装路径将来可能会改变。另外,我不知道如何停止C中的进程/服务。请告诉我以下两件事: 检测MySQL的安装路径,通过C启动服务器 通过C在应用程序退出时停止MySQL服务器 我试过了,但是这段代码需要MySql安装的路径。我需要路径自动,我无法预测任何代码C# 如何从C内置的应用程序中检测安装并自动启动MySQL服务器,c#,mysql,process.start,C#,Mysql,Process.start,我正在为使用MySQL服务器的客户端开发一个C桌面应用程序。我的客户机要求的是,数据库服务器应该在应用程序启动时启动,也应该在应用程序退出时停止。我知道如何使用process启动C中的进程。start但我不知道的是如何检测MySQL服务器的安装路径并启动服务器,因为我的客户端的条件是服务器安装路径将来可能会改变。另外,我不知道如何停止C中的进程/服务。请告诉我以下两件事: 检测MySQL的安装路径,通过C启动服务器 通过C在应用程序退出时停止MySQL服务器 我试过了,但是这段代码需要MySql
if (Process.GetProcessesByName("mysqld.exe") == null)
{
Process.Start("C:\Program Files (x86)\MySQL\MySQL Cluster 5.5\bin\mysqld.exe");
}
给出bin文件夹中MySQLInstanceConfig.exe的路径 C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld 浏览以下链接,这可能会对您有所帮助 这个很好用。。。。 只需转到windows服务并确定机器上MySQL实例的服务名称。 我的是‘MySQL57’。超时只是为了确保服务状态在执行其他操作之前返回预期值
你们自己尝试过什么吗?你们是如何在任务管理器中停止进程的?…是的@NaceRedine我编辑了我的问题查看itOLEDB连接在这种情况下是否适合你们或者使用SQL Server 2008 r2…为什么每次都要启动并关闭它???@自由职业者:我不知道他们为什么需要它,我也对他们说,但他们说,出于安全原因,我们必须这样做
public int RestartMySQL()
{
var serviceName = "MySQL57";
var timeoutMilliseconds = 2000;
var service = new ServiceController(serviceName, Environment.MachineName);
try
{
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
if (service.Status == ServiceControllerStatus.Running)
{
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
return 5;
}
catch (Exception ex)
{
return 0;
}
}