Служба Mysql была запущена, а затем остановлена, как запустить Windows 10

Обновлено: 03.07.2024

Справочное руководство по MySQL 5.6, включая Справочное руководство по MySQL NDB Cluster 7.3–7.4

2.3.4.7 Запуск MySQL в качестве службы Windows

В Windows рекомендуемый способ запуска MySQL — установить его как службу Windows, чтобы MySQL запускался и останавливался автоматически при запуске и остановке Windows. Сервер MySQL, установленный как служба, также может управляться из командной строки с помощью команд NET или с помощью графической утилиты Services. Как правило, для установки MySQL в качестве службы Windows необходимо войти в систему, используя учетную запись с правами администратора.

Утилита «Службы» (диспетчер управления службами Windows) находится на панели управления Windows. Во избежание конфликтов рекомендуется закрывать утилиту «Службы» при выполнении операций по установке или удалению сервера из командной строки.

Установка службы

Перед установкой MySQL в качестве службы Windows необходимо сначала остановить текущий сервер, если он запущен, с помощью следующей команды:

Если учетная запись пользователя root MySQL имеет пароль, вам необходимо вызвать mysqladmin с параметром -p и указать пароль при появлении запроса.

Эта команда вызывает административную утилиту MySQL mysqladmin для подключения к серверу и выдачи команды на завершение работы. Команда подключается от имени пользователя root MySQL, который является учетной записью администратора по умолчанию в системе грантов MySQL.

Пользователи в системе грантов MySQL полностью независимы от любых пользователей операционной системы Windows.

Установите сервер как службу с помощью этой команды:

Команда установки службы не запускает сервер. Инструкции для этого приведены далее в этом разделе.

Чтобы упростить вызов программ MySQL, вы можете добавить путь к каталогу bin MySQL в переменную среды PATH вашей системы Windows:

На рабочем столе Windows щелкните правой кнопкой мыши значок "Мой компьютер" и выберите "Свойства" .

Затем выберите вкладку "Дополнительно" в появившемся меню "Свойства системы" и нажмите кнопку "Переменные среды".

В разделе «Системные переменные» выберите «Путь» и нажмите кнопку «Изменить». Должно появиться диалоговое окно «Редактировать системную переменную».

Поместите курсор в конец текста, появляющегося в пространстве с пометкой Variable Value . (Используйте клавишу End, чтобы убедиться, что курсор находится в самом конце текста в этом пространстве.) Затем введите полный путь к каталогу bin MySQL (например, C:\Program Files\MySQL\MySQL Server 5.6). \bin ), и должна быть точка с запятой, отделяющая этот путь от любых значений, присутствующих в этом поле. Закройте этот диалог и каждый диалог по очереди, нажимая OK, пока все открытые диалоги не будут закрыты. Теперь вы должны быть в состоянии вызвать любую исполняемую программу MySQL, набрав ее имя в командной строке DOS из любого каталога в системе, не указывая путь. Сюда входят серверы, клиент mysql и все утилиты командной строки MySQL, такие как mysqladmin и mysqldump .

Не следует добавлять каталог bin MySQL в путь Windows PATH, если на одном компьютере запущено несколько серверов MySQL.

Вы должны проявлять большую осторожность при редактировании системного PATH вручную; случайное удаление или изменение любой части существующего значения PATH может привести к тому, что система станет неисправной или даже непригодной для использования.

При установке службы можно использовать следующие дополнительные аргументы:

Вы можете указать имя службы сразу после параметра --install. Имя службы по умолчанию — MySQL .

Если указано имя службы, за ним может следовать один параметр. По соглашению это должно быть --defaults-file= имя_файла, чтобы указать имя файла параметров, из которого сервер должен считывать параметры при запуске.

Использование одного параметра, кроме --defaults-file, возможно, но не рекомендуется. --defaults-file является более гибким, поскольку позволяет указать несколько параметров запуска для сервера, поместив их в именованный файл параметров.

Вы также можете указать параметр --local-service после имени службы. Это приводит к тому, что сервер запускается с использованием учетной записи Windows LocalService с ограниченными системными привилегиями. Если после имени службы указаны --defaults-file и --local-service, они могут быть в любом порядке.

Для сервера MySQL, установленного как служба Windows, следующие правила определяют имя службы и файлы параметров, используемые сервером:

Если команда установки службы не указывает имя службы или имя службы по умолчанию ( MySQL ) после параметра --install, сервер использует имя службы MySQL и считывает параметры из группы [mysqld] в стандартных файлах параметров. .

Если в команде service-installation после параметра --install указано имя службы, отличное от MySQL, сервер использует это имя службы.Он считывает параметры из группы [mysqld] и группы с тем же именем, что и служба, в стандартных файлах параметров. Это позволяет вам использовать группу [mysqld] для параметров, которые должны использоваться всеми службами MySQL, и группу параметров с именем службы для использования сервером, установленным с этим именем службы.

Если в команде service-installation указан параметр --defaults-file после имени службы, сервер считывает параметры так же, как описано в предыдущем пункте, за исключением того, что он считывает параметры только из именованного файла и игнорирует стандартный файлы опций.

В качестве более сложного примера рассмотрим следующую команду:

Здесь имя службы по умолчанию ( MySQL ) указано после параметра --install. Если параметр --defaults-file не был указан, эта команда заставит сервер прочитать группу [mysqld] из стандартных файлов параметров. Однако из-за наличия параметра --defaults-file сервер считывает параметры из группы параметров [mysqld] и только из именованного файла.

В Windows, если сервер запускается с параметрами --defaults-file и --install, --install должен быть первым. В противном случае mysqld.exe попытается запустить сервер MySQL.

Вы также можете указать параметры в качестве параметров запуска в утилите служб Windows перед запуском службы MySQL.

Наконец, прежде чем пытаться запустить службу MySQL, убедитесь, что пользовательские переменные %TEMP% и %TMP% (а также %TMPDIR% , если она когда-либо была задана) для пользователя операционной системы, который должен запускать службу указывают на папку, к которой у пользователя есть доступ для записи. Пользователь по умолчанию для запуска службы MySQL — LocalSystem, а значение по умолчанию для его %TEMP% и %TMP% — C:\Windows\Temp, каталог, к которому LocalSystem имеет доступ для записи по умолчанию. Однако, если есть какие-либо изменения в этой настройке по умолчанию (например, изменения в пользователе, который запускает службу, или в упомянутых пользовательских переменных, или была использована опция --tmpdir для помещения временного каталога в другое место), MySQL служба может не запуститься из-за того, что права записи во временный каталог не предоставлены соответствующему пользователю.

Запуск службы

После установки экземпляра сервера MySQL в качестве службы Windows автоматически запускает службу при каждом запуске Windows. Службу также можно запустить сразу из утилиты Services или с помощью команды sc start mysqld_service_name или NET START mysqld_service_name. Команды SC и NET не чувствительны к регистру.

При запуске в качестве службы mysqld не имеет доступа к окну консоли, поэтому там нельзя увидеть никаких сообщений. Если mysqld не запускается, проверьте журнал ошибок, чтобы увидеть, писал ли сервер какие-либо сообщения, указывающие на причину проблемы. Журнал ошибок находится в каталоге данных MySQL (например, C:\Program Files\MySQL\MySQL Server 5.6\data ). Это файл с суффиксом .err .

Если сервер MySQL установлен как служба и служба запущена, Windows автоматически останавливает службу при завершении работы Windows. Сервер также можно остановить вручную с помощью утилиты Services, команды sc stop mysqld_service_name, команды NET STOP mysqld_service_name или команды mysqladmin shutdown.

У вас также есть возможность установить сервер как службу вручную, если вы не хотите, чтобы служба запускалась автоматически во время процесса загрузки. Для этого используйте параметр --install-manual вместо параметра --install:

Удаление сервиса

Чтобы удалить сервер, установленный как служба, сначала остановите его, если он запущен, выполнив команду SC STOP mysqld_service_name или NET STOP mysqld_service_name . Затем используйте SC DELETE mysqld_service_name, чтобы удалить его:

В качестве альтернативы можно использовать параметр mysqld --remove для удаления службы.

Если mysqld не работает как служба, вы можете запустить ее из командной строки. Инструкции см. в разделе 2.3.4.5, «Запуск MySQL из командной строки Windows».

Дополнительную информацию об остановке или удалении службы Windows см. в разделе 5.7.2.2, «Запуск нескольких экземпляров MySQL в качестве служб Windows».

Служба MySQL на локальном компьютере запустилась, а затем остановилась. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.

Кто-нибудь может решить эту проблему? Спасибо.


Этот вопрос помечен окном службы mysql

~ Вопрос задан 27 февраля 2016 г., 14:08:46

26 ответов

После установки с помощью mysqld --install . Попробуйте это mysqld --initialize . У нас та же проблема, но теперь она работает.

~ Отвечено 2016-04-02 22:27:27

При использовании версии 8 и редактировании файла my.ini я обнаружил, что Блокнот помещает 3 шестнадцатеричных символа в начало файла my.ini. ЭФ ББ БФ.Удаление трех символов из начала файла в шестнадцатеричном редакторе решает проблему.

В версии 8 они случайно помещают символы Unicode в файл ini. Это приводит к тому, что Блокнот сохраняет файл с символами метки порядка следования байтов.

~ Ответ дан 2019-04-04 14:52:13

Также не забудьте предоставить разрешение NETWORK SERVICE для папки:

  1. Щелкните правой кнопкой мыши папку данных.
  2. Выбрать свойства
  3. Выберите вкладку "Безопасность".
  4. Нажмите "Дополнительно".
  5. Нажмите «Изменить разрешения».
  6. Нажмите "Добавить".
  7. Введите СЕТЕВАЯ СЛУЖБА
  8. Нажмите "Проверить имена".
  9. Нажмите "ОК".
  10. Выбрать полный доступ.
  11. Нажмите "ОК" четыре раза.
  12. Запустить службу MySQL

В моем случае я попытался открыть командную строку DOS, перейти в каталог MySQL bin\ и ввести следующую команду:

И это показывает, что мне не хватает папки "C:\Program Files\MySQL\MySQL Server 5.0\Uploads"; Я построил один, и проблема решена.

~ Отвечено 2017-05-26 04:31:57

  1. Открыть сервис
  2. Щелкните правой кнопкой мыши сервис MYSQL.
  3. выберите Войти
  4. проверьте локальную системную учетную запись
  5. запустить службу

Это может быть связано с изменением lower_case_table_names после того, как сервер уже был инициализирован.

lower_case_table_names можно настроить только при инициализации сервера. Изменение параметра lower_case_table_names после инициализации сервера запрещено.

Решение этой проблемы заключается в установке параметра lower_case_table_names при установке сервера, как описано в следующем ответе:

Использование сообщества 8.0.17, обновленного с 8.0.16

Возможно, есть более безопасный способ сделать это, но поскольку я просто запускаю dev box:

  1. перейдите в папку \data
  2. УБЕДИТЕСЬ, что папка \data ПУСТА. Если файлы существуют, опция --initialize завершится ошибкой
  3. предоставить SYSTEM полный доступ к папке \data
  4. вернуться в командную строку
  5. запустите mysqld --initialize

теперь вы должны увидеть все необходимые структуры файлов данных в папке данных. Если они не созданы, процесс mysqld имеет конфликт или ненадлежащую защиту для правильной записи в папку.

Теперь запустите именованную службу любым способом (SC/NET/service.msc и т. д.)

Предполагая, что все файлы были правильно созданы --initialize, служба запустится.

~ Отвечено 20.09.2019 00:46:00

У меня ничего не работало, но я проверил здесь. Я запустил эту команду qc sc mysql57 и скопировал из нее значение BINARY_PATH_NAME. После этого я проверил это и изменил значение lower_case_table_names с 0 на 2 в файле my.ini. Затем в командной строке я выполнил эту команду -> --install-manual . После этого я запустил службу MySQL57, и она заработала.

~ Отвечено 25.07.2019 13:07:57

мое решение — восстановить файл my.ini и отредактировать значение конфигурации с помощью файлов параметров в приложении WorkBench. Пример меню workBench

~ Отвечено 2020-06-16 15:06:36

Эта ошибка произошла в моем случае, когда secure-file-priv указывал на несуществующую папку, убедитесь, что она существует и доступна для чтения.

Пример строки кода в файле my.ini: secure-file-priv="D:/MySQL/uploads"

~ Ответ дан 2019-05-10 15:17:49

Переименуйте или удалите папку под,

изменение имени папки в соответствии с номером версии MYSQL.

Возможно, вы также случайно добавили неправильный текст в файл my.ini. Убедитесь, что в начале файла нет недопустимых символов.

~ Отвечено 20.06.2019 06:45:43

Я вижу эту ошибку, когда устанавливаю MySQL 8.x, редактирую max_allowed_packet в файле my.ini, а затем перезапускаю mysql на компьютере с Windows 10. Я рекомендую, чтобы избежать этой проблемы, отредактируйте файл my.ini в шестнадцатеричном редакторе (что-то вроде Frhed). НЕ ИСПОЛЬЗУЙТЕ БЛОКНОТ. Он что-то делает с шестнадцатеричным макетом файла .ini.

~ Ответ дан 2020-04-06 10:26:24

Следуйте приведенным ниже инструкциям, чтобы сэкономить день:

Если вы измените my.ini неправильно, вы обнаружите проблему "Служба MySQL на локальном компьютере запустилась, а затем остановилась". Поэтому вам нужно еще раз проверить файл my.ini в «C:\ProgramData\MySQL\MySQL Server 8.0\my.ini», чтобы убедиться, что нет странной команды. Если вы не знаете и хотите восстановить оригинал, вы можете выполнить поиск в Интернете по ключевому слову «конфигурация my.ini», загрузить последнюю версию и скопировать ее в «C:\ProgramData\MySQL\MySQL Server 8.0\my.ini». "

Для тех, кто удаляет службу SQL в Windows или Linux, выполните следующие действия:

Удалить текущую службу

Вам необходимо остановить MySQL80/MySQLXX в службе, прежде чем выполнять действие, описанное ниже. Откройте командную строку окна и запустите от имени администратора

sc delete mysql80 Будет создана служба MySQLXX, работающая с my.ini

Тогда MySQL работает нормально, и вам не нужно будет снова устанавливать MySQL.

Я не использую Linux или Mac, поэтому не могу давать инструкции. Вы можете найти ответ выше для справки

Служба MySQL на локальном компьютере запустилась, а затем остановилась. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.

Кто-нибудь может решить эту проблему? Спасибо.


Перед инициализацией удалите все файлы в каталоге данных. Там могут быть файлы ошибок, которые вас остановят.

31 Ответ 31

После установки с помощью mysqld --install . Попробуйте это mysqld --initialize . У нас та же проблема, но теперь она работает.

@Тунаки. Нам нужно открыть командную строку от имени администратора, чтобы выполнить команды mysqld --install и mysqld --initialize.

После использования mysqld --initialize поиска пароля root в файле журнала ошибок MySQL строка будет выглядеть следующим образом: Создан временный пароль для root@localhost: Ok+ju;UT8%ED

Я использовал эту службу MYSQL80 раньше. Почему-то он не запускается, я обычно запускаю его вручную из служб, но теперь он не работает оттуда

открыл cmd от имени администратора, выполнил команды mysqld --install и mysqld --initialize . Затем открыл mysql в службах и запустил службу. Это сработало так

При использовании версии 8 и редактировании файла my.ini я обнаружил, что Блокнот помещает 3 шестнадцатеричных символа в начало файла my.ini. ЭФ ББ БФ. Удаление трех символов из начала файла в шестнадцатеричном редакторе решает проблему.

В версии 8 они случайно помещают символы Unicode в файл ini. Это приводит к тому, что Блокнот сохраняет файл с символами метки порядка следования байтов.

Я не вижу лишних символов в начале или в конце. Однако я переименовал файл my.ini в файл my_old.ini, вручную скопировал содержимое my_old.ini в my.ini, и сервер запустился!

Вы также можете выбрать кодировку ANSI в диалоговом окне «Сохранить как» и проигнорировать следующее предупреждение. Спасибо за совет!

Также не забудьте предоставить разрешение NETWORK SERVICE для папки:

  1. Щелкните правой кнопкой мыши папку данных.
  2. Выбрать свойства
  3. Выберите вкладку "Безопасность".
  4. Нажмите "Дополнительно".
  5. Нажмите «Изменить разрешения».
  6. Нажмите "Добавить".
  7. Введите СЕТЕВАЯ СЛУЖБА
  8. Нажмите "Проверить имена".
  9. Нажмите "ОК".
  10. Выбрать полный доступ.
  11. Нажмите "ОК" четыре раза.
  12. Запустить службу MySQL

Почти 2 часа и настройка разрешений в Windows сделали свое дело, не думал, что это может быть проблемой, так как такой индикации не было вообще. большое спасибо дружище

Спасибо, спасибо, спасибо, я рвал на себе волосы, пытаясь понять, почему даже предоставление папке всех разрешений для ВСЕХ по-прежнему не позволило мне перезапустить службу MySQL, но простое добавление разрешений для СЕТЕВОЙ СЛУЖБЫ помогло. Я безуспешно следовал инструкциям других постов, пока не заметил ваш комментарий и ссылку на этот пост и не применил ваши инструкции, и ЭТО РАБОТАЕТ!, ваш мой спаситель, большое вам спасибо :)

В моем случае я попытался открыть командную строку DOS, перейти в каталог MySQL bin\ и ввести следующую команду:

И это показывает, что мне не хватает папки "C:\Program Files\MySQL\MySQL Server 5.0\Uploads"; Я построил один, и проблема решена.

После того, как я возился с множеством настроек разрешений, оказалось, что у меня неправильная буква диска в моем файле ini/cnf. Этот ответ помог мне.

При использовании вышеуказанного запроса, Try1, он показал мне, что - "Ошибка операционной системы номер 32 в файловой операции. [ОШИБКА] [MY-012615] Ошибка означает, что другая программа использует файлы InnoDB. Это может быть резервная копия. или антивирусное программное обеспечение или другой экземпляр MySQL». При использовании приведенного выше запроса Try2 он запустил восстановление после сбоя и успешно запустился :)

Это хорошо сработало, чтобы предоставить нам подробные сведения об ошибках, которые позволили нам решить нашу проблему, за исключением того, что наш файл «my.ini» находится в пути к каталогу «ProgramData», а не к пути к каталогу «Program Files». mysqld --defaults-file ="C:\ProgramData\MySQL\MySQL Server 5.0\my.ini" --standalone --console

  1. Открыть сервис
  2. Щелкните правой кнопкой мыши сервис MYSQL.
  3. выберите Войти
  4. проверьте локальную системную учетную запись
  5. запустить службу

Использование сообщества 8.0.17, обновленного с 8.0.16

Возможно, есть более безопасный способ сделать это, но поскольку я просто запускаю dev box:

  1. перейдите в папку \data
  2. УБЕДИТЕСЬ, что папка \data ПУСТА. Если файлы существуют, опция --initialize завершится ошибкой
  3. предоставить SYSTEM полный доступ к папке \data
  4. вернуться в командную строку
  5. запустите mysqld --initialize

теперь вы должны увидеть все необходимые структуры файлов данных в папке данных. Если они не созданы, процесс mysqld имеет конфликт или ненадлежащую защиту для правильной записи в папку.

Теперь запустите именованную службу любым способом (SC/NET/service.msc и т. д.)

Предполагая, что все файлы были правильно созданы --initialize, служба запустится.

Это может быть связано с изменением lower_case_table_names после того, как сервер уже был инициализирован.

lower_case_table_names можно настроить только при инициализации сервера. Изменение параметра lower_case_table_names после инициализации сервера запрещено.

Решение этой проблемы заключается в установке параметра lower_case_table_names при установке сервера, как описано в следующем ответе:

Я вижу эту ошибку, когда устанавливаю MySQL 8.x, редактирую max_allowed_packet в файле my.ini, а затем перезапускаю mysql на компьютере с Windows 10. Я рекомендую, чтобы избежать этой проблемы, отредактируйте файл my.ini в шестнадцатеричном редакторе (что-то вроде Frhed). НЕ ИСПОЛЬЗУЙТЕ БЛОКНОТ. Он что-то делает с шестнадцатеричным макетом файла .ini.

Следуйте приведенным ниже инструкциям, чтобы сэкономить день:

Если вы измените my.ini неправильно, вы обнаружите проблему "Служба MySQL на локальном компьютере запустилась, а затем остановилась". Поэтому вам нужно еще раз проверить файл my.ini в «C:\ProgramData\MySQL\MySQL Server 8.0\my.ini», чтобы убедиться, что нет странной команды. Если вы не знаете и хотите восстановить оригинал, вы можете выполнить поиск в Интернете по ключевому слову «конфигурация my.ini», загрузить последнюю версию и скопировать ее в «C:\ProgramData\MySQL\MySQL Server 8.0\my.ini». "

Для тех, кто удаляет службу SQL в Windows или Linux, выполните следующие действия:

Удалить текущую службу

Вам необходимо остановить MySQL80/MySQLXX в службе, прежде чем выполнять действие, описанное ниже. Откройте командную строку окна и запустите от имени администратора

sc delete mysql80 Будет создана служба MySQLXX, работающая с my.ini

Тогда MySQL работает нормально, и вам не нужно будет снова устанавливать MySQL.

Я не использую Linux или Mac, поэтому не могу давать инструкции. Вы можете найти ответ выше для справки

При запуске службы MySQL80 она немедленно останавливается и выдает следующую ошибку:


Служба MySQL80 на локальном компьютере была запущена, а затем остановлена. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами.

«Служба MySQL80 на локальном компьютере запустилась, а затем остановилась. Некоторые службы автоматически останавливаются, если они не используются другими службами или программами».

Решение, которое я нашел, было до смешного простым, но мне потребовалось некоторое время, чтобы найти его, поэтому я решил создать еще один онлайн-ресурс, чтобы сэкономить вам время и нервы. Я нашел множество сайтов, на которых упоминалось об установке MySQL как службы с помощью mysqld –install и последующего запуска mysqld –initialize , но я бы не стал начинать с этого.

Решение

Каким-то образом файл конфигурации my.ini может добавлять шестнадцатеричные символы в начало файла. По крайней мере, на серверах Windows это приводит к сбою службы MySQL при попытке запуска. Решение состоит в том, чтобы удалить эти шестнадцатеричные символы, а затем снова запустить службу.

Поскольку шестнадцатеричные символы не видны, если вы используете обычный текстовый редактор, например встроенный блокнот, вам придется установить другую программу.

Шаги по исправлению службы MySQL80

Когда вы открываете файл конфигурации my.ini (в Windows он находится в папке C:\ProgramData\MySQL\MySQL Server 8.0 –> у вас может быть другой номер версии сервера), вы не сразу заметите шестнадцатеричные символы, если только вы просматриваете его с помощью программы просмотра HEX.


Использование Блокнота++

Один из самых простых способов получить HEX-представление файла my.ini — использовать Notepad++ и запустить подключаемый модуль «HEX-Editor». Если вы еще не используете Notepad++ для всех ваших потребностей в текстовом редакторе… вы должны это сделать. Загрузите Notepad++ здесь.

Запустив Notepad++, вы можете добавить подключаемый модуль HEX-Editor. В Notepad++ нажмите «Плагины» -> «Администратор плагинов…» -> найдите «HEX». Вы увидите «HEX-Editor» в качестве одного из плагинов, которые вы можете установить. Выберите его и нажмите «Установить».

Notepad++ должен закрыться, установить подключаемый модуль и перезапуститься. После того, как он снова откроется, откройте файл конфигурации my.ini в Notepad++, нажмите «Плагины» -> «HEX-редактор» -> «Просмотр в шестнадцатеричном формате».


Удалить шестнадцатеричные символы



Устроить вечеринку

Теперь, когда вы удалили шестнадцатеричные символы и снова сохранили файл конфигурации my.ini, вы сможете снова запустить службу MySQL80. Тогда вам стоит отпраздновать и выпить чашечку кофе.

Примечание. Это может относиться и к другим версиям MySQL, но я столкнулся с этим в MySQL версии 8.0.26.

Оставить комментарий

Надеюсь, это поможет вам. Я благодарил Бога, когда я наткнулся на это исправление! Это сэкономило мне день переустановки и восстановления данных 🙂

Свяжитесь со мной напрямую или оставьте комментарий ниже, если вам нужна помощь или у вас есть какие-либо вопросы.

Читайте также: