Ваш Dolphinscheduler не начнет, если вы пропустите это исправление плагина MySQL Auth Plugin

Ваш Dolphinscheduler не начнет, если вы пропустите это исправление плагина MySQL Auth Plugin

12 июня 2025 г.

Описание проблемы

После развертывания кластера Dolphinscheduler с использованием сценария развертывания одного клика в соответствии с производственным руководством, страница для входа в веб-консоль может быть открыта, но учетная запись по умолчанию не могла войти в систему, несмотря ни на что. Я попытался очистить поле пользователя входа в базу данных и обнаружил, что в базе данных не было соответствующего поля пользователя. Затем, пытаясь инициализировать базу данных, используя сценарий инициализации Dolphinscheduler, подключение к базе данных не удалось.

Сообщение об ошибке:

    Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
16:16:08.294 [main] ERROR com.alibaba.druid.pool.DruidDataSource - init datasource error, url: jdbc:mysql://<database IP>:3306/ifrsdb?characterEncoding=UTF-8&allowMultiQueries=true
java.sql.SQLException: Access denied for user 'root'@'<hostname>' (using password: YES)
...
16:16:08.300 [main] INFO com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
16:16:08.300 [main] ERROR org.apache.dolphinscheduler.dao.upgrade.UpgradeDao - Access denied for user 'root'@'<hostname>' (using password: YES)
java.sql.SQLException: Access denied for user 'root'@'<hostname>' (using password: YES)
...
16:16:08.301 [main] ERROR org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler - create DolphinScheduler failed

Процесс устранения неполадок

  • Во -первых, выполненные обычные проверки, такие как сеть, брандмауэр и доступность услуг, чтобы гарантировать, что все нормально
  • Проверено авторизация базы данных; войти в базу данных с сервера, используяmysqlКоманда работала нормально, исключая проблемы с базой данных
  • Проверил, соответствовал ли разъем базы данных версии базы данных; Тот же соединитель использовался, как в других производственных средах, исключая проблемы разъемов
  • Проверенные журналы запуска и собранные сообщения об ошибках
  • Проверенные файлы конфигурации, чтобы гарантировать, что значения вручную были правильными и полезными для использования

Ключевой момент исправления

А<installation directory>/conf/datasource.propertiesФайл хранит информацию об подключении к базе данных:

spring.datasource.username=root
spring.datasource.password=<your password>  ## this is where the issue was

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

Устранение неполадок в памяти: сбой аутентификации базы данных во время установки Dolphinscheduler

Описание проблемы

При установке Dolphinscheduler и выполнении сценария инициализации базы данных (напримерcreate-dolphinscheduler.sh), произошла следующая ошибка:

ERROR org.apache.dolphinscheduler.dao.upgrade.UpgradeDao - Access denied for user 'root'@'<hostname>' (using password: YES)
java.sql.SQLException: Access denied for user 'root'@'<hostname>' (using password: YES)

Хотя пользователю root был предоставлен доступ от любого хоста, использующегоGRANT ALL PRIVILEGES ON *.* TO 'root'@'%', ошибка сохранилась. Между тем, журнал показал предупреждение о том, как MySQL Direcation предупреждение:

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'.

Возможные причины

  1. MySQL Аутентификационная плагин несовместимость: MySQL 8.0 используетcaching_sha2_passwordПо умолчанию, в то время как старые драйверы JDBC могут только поддерживатьmysql_native_passwordПолем
  2. Несовместимая версия драйвера JDBC: используемый драйвер JDBC устарел и не поддерживает текущую версию MySQL Server.
  3. Неправильная конфигурация в параметрах подключения к базе данных: URL, имя пользователя или пароль вdatasource.propertiesневерно.
  4. Проблемы с разрешением имени хоста: сервер Dolphinscheduler обращается к MySQL, используя другое имя хоста или IP, что приводит к сбое разрешения.
  5. Конфликт конфигурации SSL: MySQL Server обеспечивает соблюдение SSL подключения, но URL -адрес соединения не имеет правильных параметров SSL.

Устранение неполадок

  1. Проверьте разрешения пользователя MySQL

Убедитесь, чтоrootПользователь действительно имеет доступ от любого хоста:

-- View root user permissions
SHOW GRANTS FOR 'root'@'%';

-- If insufficient, re-grant (replace with actual password)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
  1. Проверьте и обновляйте драйвер MySQL JDBC

Убедитесь, что версия драйвера JDBC соответствует версии MySQL Server:

  • Проверьте версию MySQL:
mysql -V
  • Загрузите соответствующую версию драйвера:
MySQL 5.x: Recommended - mysql-connector-java-5.1.47.jar
MySQL 8.x: Required - mysql-connector-java-8.0.x.jar
  • Замените файл драйвера: скопируйте загруженный файл JAR в Dolphinscheduler'slib/Справочник и удалите старую версию.
  1. Проверьте конфигурацию подключения к базе данных

Редактироватьconf/datasource.properties(для Dolphinscheduler 2.x) илиconf/common.properties(Для Dolphinscheduler 3.x), обеспечивая правильные параметры:

spring.datasource.url=jdbc:mysql://<database IP>:3306/ifrsdb?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=<your password>

Описания параметров ключа:

  • useSSL=false: Отключить SSL (для тестирования средств)
  • allowPublicKeyRetrieval=true: Позвольте клиенту получить открытый ключ (требуется для MySQL 8.X)
  • serverTimezone: Укажите часовой пояс, чтобы избежать проблем преобразования временных метров
  1. Проверьте сетевой подключение

Проверьте сетевое соединение с сервера Dolphinscheduler на сервер MySQL:

ping <database IP>
telnet <database IP> 3306
  1. Проверьте плагин аутентификации MySQL

Для MySQL 8.X убедитесь, чтоrootплагин аутентификации пользователяmysql_native_password:

SELECT user, host, plugin FROM mysql.user WHERE user = 'root';

-- If the plugin is caching_sha2_password, change it to mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
  1. Временно отключить брандмауэр или группы безопасности

Если брандмауэр существует, отключите его временно, чтобы проверить, вызывает ли он ограничение сети:

# CentOS/RHEL
systemctl stop firewalld

# Ubuntu/Debian
ufw disable

Примечание: Обязательно повторно установите брандмауэр после тестирования и настройки соответствующих правил доступа.

Общая обработка ошибок

  • Ошибка: Loading class 'com.mysql.jdbc.Driver'
    • Причина: Уличное имя класса драйвера используется
    • Решение: Обновить до MySQL Connector/J 8.0+ и убедитесь, что не старого драйвера нет вlib/каталог
  • Ошибка: Public Key Retrieval is not allowed
    • Причина: Mysql 8.x требует поиска ключей, но URL не хватает конфигурации
    • Решение: ДобавлятьallowPublicKeyRetrieval=trueк URL
  • Ошибка: The server time zone value 'XXX' is unrecognized
    • Причина: Часовой пояс не настроен правильно
    • Решение: ДобавлятьserverTimezone=Asia/Shanghai(или ваш фактический часовой пояс) к URL

Проверьте исправление

  1. Перезапустите службы Dolphinscheduler:
sh bin/stop-all.sh
sh bin/start-all.sh
  1. Повторно запустите скрипт инициализации базы данных:
sh script/create-dolphinscheduler.sh

Профилактические меры

  1. Перед установкой убедитесь, что версия MySQL совместима с тем, что рекомендуется в документации Dolphinscheduler.
  2. Используйте специального пользователя базы данных (неroot) для доступа к приложениям и ограничить его разрешение.
  3. Регулярно резервное копирование базы данных, чтобы избежать потери данных.
  4. В производственных средах включите шифрование SSL и настройте более строгие политики доступа к сети.

Справочные документы

  • Официальное руководство по установке Dolphinscheduler (ZH)
  • MySQL Connector/J Скачать
  • MySQL Управление привилегией пользователей


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE