Как обнаружить установку и автоматически запустить сервер 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

Другие вопросы по тегам