MySQL 8 на Windows: любое изменение my.ini нарушает последовательность запуска.

Вопрос или проблема

Mysql 8.0.41 на Windows (но это относится и к предыдущим версиям, по крайней мере ко всем версиям 8.x)

Я могу останавливаться и перезапускать службу из диспетчера задач/служб столько раз, сколько захочу, никаких проблем.

Однако, как только я вношу изменения в my.ini, mysqld начинает останавливаться со следующим сообщением:

2025-02-05T09:01:07.459474Z 0 [System] [MY-010116] [Server] C:\db\mysql\bin\mysqld.exe (mysqld 8.0.41) starting as process 4628
2025-02-05T09:01:07.462226Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\db\mysql\data\mysqld_tmp_file_case_insensitive_test.lower-test
2025-02-05T09:01:07.462284Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\db\mysql\data\mysqld_tmp_file_case_insensitive_test.lower-test
2025-02-05T09:01:07.474391Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\db\mysql\data\' (OS errno: 2 - No such file or directory)
2025-02-05T09:01:07.521215Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-02-05T09:01:07.521381Z 0 [System] [MY-010910] [Server] C:\db\mysql\bin\mysqld.exe: Shutdown complete (mysqld 8.0.41) MySQL Community Server - GPL.

Обратите внимание, что:

  1. Я не трогал datadir никак. Ни в ini файле, ни саму datadir.
  2. Я изменил только sqlmode в my.ini
  3. Я отменил изменение и восстановил my.ini, как было до редактирования

Однако, независимо от этого, mysqld продолжает не запускаться с вышеуказанной ошибкой (ошибками).
Только удаление и повторная установка с нуля решает проблему.

Кто-нибудь сталкивался с этой проблемой и знает ли альтернативное решение?

Ответ или решение

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

Теория

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

Ошибка, на которую вы указали, свидетельствует о проблемах с доступом к каталогу данных:

[ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\db\mysql\data\' (OS errno: 2 - No such file or directory)

Это указывает на то, что, по какой-то причине, сервер не может найти или получить доступ к указанному каталогу данных, что приводит к невозможности запуска.

Пример

Вы указываете, что не изменяли параметр datadir и изменяли файл my.ini только в части sqlmode. Однако, это изменение вызвало появление ошибки, даже если вы возвращали конфигурационный файл к его изначальному состоянию.

Такое поведение может быть связано с несколькими потенциальными проблемами:

  1. Права доступа: Возможно, после изменения файла конфигурации или вследствие другого события, права доступа к каталогу с данными были изменены. Убедитесь, что у пользователя, от имени которого работает служба MySQL, есть необходимые права на чтение и запись в указанный каталог.

  2. Системные ограничения: Операционная система Windows может накладывать ограничения на некоторые операции в каталоге, особенно если он расположен в системном разделе. Возможно, стоит попробовать перенести datadir в другой каталог с обеспечением корректных прав доступа.

  3. Файловая система и кэширование: Может возникнуть ситуация, когда после изменений в конфигурации файловая система или приложения, что управляют кешированием, не обновляют свое состояние. В этом случае рекомендуется перезапустить системы кеширования или сам сервер операционной системы.

  4. Синтаксические ошибки: Маловероятно, что изменение sqlmode приводит к ошибкам с datadir, но есть риск, что какие-то скрытые символы были добавлены или случайно изменились пути и значения в файле конфигурации. Проверьте, чтобы в файле не было оставлено неправильных символов.

  5. Проблемы с путями: Поскольку Windows обрабатывает пути с использованием обратных слешей, важно убедиться в правильности используемых символов в my.ini.

Применение

  1. Проверка прав доступа:

    • Перейдите в каталог, где расположен datadir.
    • Кликните правой кнопкой мыши, выберите "Свойства", перейдите на вкладку "Безопасность".
    • Проверьте, что учетная запись, от имени которой работает MySQL, имеет полные права.
  2. Резервное копирование и проверка my.ini:

    • Сделайте резервную копию my.ini.
    • Убедитесь, что после изменений файл сохранил корректный формат без дополнительных скрытых символов или ошибок.
  3. Логи и отладка:

    • Проверяйте журналы MySQL за дополнительные ошибки и предупреждения, которые могут дать подсказку.
    • Используйте mysqlcheck для проверки целостности таблиц.
  4. Перемещение datadir:

    • Попробуйте указать для datadir другой каталог с нужными правами и запустить MySQL с этой конфигурацией.
  5. Консультация с сообществом:

    • Иногда специфические ошибки хорошо известны в сообществе. Полезно связаться с экспертами на специализированных форумах или в технической поддержке MYSQL для получения дополни
Оцените материал
Добавить комментарий

Капча загружается...