Как обнаружить установку и автоматически запустить сервер MySQL из приложения, встроенного в C#
Я разрабатываю настольное приложение C# для моего клиента, которое использует MySQL Server. Мой клиент требует, чтобы сервер базы данных был запущен во время запуска приложения, а также был остановлен при выходе из приложения. Я знаю, как запустить процесс в C# с помощью Process.Start(), но я не знаю, как определить путь установки сервера MySQL и запустить сервер, потому что условие моего клиента состоит в том, что путь установки сервера может измениться в будущем. Также я не знаю, как остановить процесс / службу в C#. Поэтому, пожалуйста, скажите мне эти две вещи:
- Определите путь установки MySQL и запустите сервер через C#
- Остановите сервер MySQL при выходе из приложения через C#
Я пробовал это, но этот код нуждается в пути установки MySql. Мне нужен автоматический путь, и я не могу предсказать какой-либо код для этого
if (Process.GetProcessesByName("mysqld.exe") == null)
{
Process.Start("C:\Program Files (x86)\MySQL\MySQL Cluster 5.5\bin\mysqld.exe");
}
1 ответ
Это работает отлично.... Просто перейдите к своим службам Windows и определите имя службы для экземпляра MySQL на машине. У меня MySQL57. Тайм-аут нужен только для того, чтобы состояние службы вернуло ожидаемое значение перед выполнением других действий.
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;
}
}
Укажите путь для MySQLInstanceConfig.exe в папке bin...
"C: \ Program Files \ MySQL \ MySQL Server 5.1 \ bin \ mysqld"
Перейдите по следующей ссылке, которая может помочь вам
http://dev.mysql.com/doc/refman/5.0/en/mysql-config-wizard-starting.html