Не получается экспорт в БД

Стартовая страница Форумы Вопросы по установке Не получается экспорт в БД

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Автор
    Сообщения
  • #25201
    dnat1970
    Участник

    Доброго вечера
    Настроил экспорт в БД MySQL в соответствии с инструкцией, На Win Server 2012 — MySql 8.0.30 создал БД и таблицы, пробую экспортировать выдает ошибку
    Подскажите что может быть?

    2022-09-25 19:05:33 Невозможно добавить текущие данные в очередь. Максимальный размер очереди 1000 превышен
    2022-09-25 19:05:33 Ошибка при соединении с БД:
    System.Security.Authentication.AuthenticationException: Ошибка вызова SSPI, см. внутреннее исключение. —> System.ComponentModel.Win32Exception: Получено непредвиденное сообщение или оно имеет неправильный формат
    — Конец трассировки внутреннего стека исключений —
    в System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
    в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
    в System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
    в System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
    в System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
    в System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
    в System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
    в MySql.Data.MySqlClient.NativeDriver.StartSSL()
    в MySql.Data.MySqlClient.NativeDriver.Open()
    в MySql.Data.MySqlClient.Driver.Open()
    в MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
    в MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
    в MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
    в MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
    в MySql.Data.MySqlClient.MySqlPool.GetConnection()
    в MySql.Data.MySqlClient.MySqlConnection.Open()
    в Scada.Db.DataSource.Connect()
    в Scada.Server.Modules.DbExport.Exporter.Connect()

    #25205
    Mikhail
    Модератор

    Добрый день!
    Не удаётся подключиться к серверу БД. Какая-то проблема при проверке безопасности подключения. Какие у Вас используются параметры подключения?

    #25215
    dnat1970
    Участник

    Добрый!

    server=localhost;port=3306;database=gofro;user id=user1;password=12345

    2022-09-27 00:00:24 Запуск экспортёра «[1] MySQL localhost»
    2022-09-27 00:00:24 Файл состояния экспорта отсутствует
    2022-09-27 00:02:28 Экспортёр «[1] MySQL localhost» остановлен

    чуть раньше было так

    2022-09-26 23:10:53 Ошибка при соединении с БД:
    MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host ‘localhost’ for user ‘root’ using method ‘mysql_native_password’ failed with message: Access denied for user ‘root’@’localhost’ (using password: YES) —> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user ‘root’@’localhost’ (using password: YES)
    в MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationFailed(Exception ex)
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset)
    в MySql.Data.MySqlClient.NativeDriver.Open()
    в MySql.Data.MySqlClient.Driver.Open()
    в MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
    в MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
    в MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
    в MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
    в MySql.Data.MySqlClient.MySqlPool.GetConnection()
    в MySql.Data.MySqlClient.MySqlConnection.Open()
    в Scada.Db.DataSource.Connect()
    в Scada.Server.Modules.DbExport.Exporter.Connect()
    2022-09-26 23:10:54 Ошибка при соединении с БД:
    MySql.Data.MySqlClient.MySqlException (0x80004005): Authentication to host ‘localhost’ for user ‘root’ using method ‘mysql_native_password’ failed with message: Access denied for user ‘root’@’localhost’ (using password: YES) —> MySql.Data.MySqlClient.MySqlException (0x80004005): Access denied for user ‘root’@’localhost’ (using password: YES)
    в MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationFailed(Exception ex)
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket()
    в MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset)
    в MySql.Data.MySqlClient.NativeDriver.Open()
    в MySql.Data.MySqlClient.Driver.Open()
    в MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
    в MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
    в MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
    в MySql.Data.MySqlClient.MySqlPool.TryToGetDriver()
    в MySql.Data.MySqlClient.MySqlPool.GetConnection()
    в MySql.Data.MySqlClient.MySqlConnection.Open()
    в Scada.Db.DataSource.Connect()
    в Scada.Server.Modules.DbExport.Exporter.Connect()

    #25227
    Mikhail
    Модератор

    Ошибка Access denied for user ‘root’@’localhost’ говорит сама за себя. Сначала нужно добиться корректного подключения к серверу, используя стандартный клиент — MySQL Workbench, установленный на тот же компьютер, где находится SCADA.

    #25228
    Mikhail
    Модератор

    Если в данный момент в логе экспорта нет ошибок, значит экспорт работает.

    #25232
    dnat1970
    Участник

    И MySQL Workbench и phpMyAdmin БД видят, позволяет в нее вносить записи и редактировать их. Причем пробовал и с пользователем root и с новым созданным пользователем user1 с полными правами. Есть подозрение что на MySQL включено SSL, но вроде в описании говорится, что это не влияет на подключение клиента если явно в MySql этого не задано. Командной строкой в мониторе обращение к БД то — же нормальное. Почему тогда может происходить конфликт с клиентом SCADA не понятно.
    И разъясните что означает лог —
    Файл состояния экспорта отсутствует. ?
    Влияют ли «Галочки» Включено-Выключено в разделе Свойств «Параметры загрузки архива» на передачу данных

    #25233
    dnat1970
    Участник

    И посмотрите пожалуйста все ли правильно в запросе «Тригера на текущие данные»
    INSERT INTO cnldata (datetime, cnlnum, val, stat)
    VALUES (@dateTime, @cnlNum, @val15, @stat15)
    Спасибо

    #25240
    Mikhail
    Модератор

    Файл состояния экспорта отсутствует.

    Сделайте скриншот, пожалуйста. Также будет полезен скриншот содержимого папки C:\SCADA\ScadaServer\Log

    Если SQL-запрос не правильный, в журнале экспорта появятся соответствующие ошибки.

    #25613
    dnat1970
    Участник

    Доброго времени!
    Не получается побороть экспорт в БД MySQL прошу помочь.
    Предыдущую ошибку — System.Security.Authentication.AuthenticationException: Ошибка вызова SSPI, см. внутреннее исключение. —> System.ComponentModel.Win32Exception

    Удалось решить добавлением в строку SQL запроса — SslMode=None;
    server=localhost;port=3306;SslMode=None;database=gofroplk;user id=root;password=12345
    Тригер на текущие данные
    INSERT INTO cnldata (datetime, cnlnum, val, stat)
    VALUES (now(), 10, 11, 12)

    Полагаю что SSL можно было бы отключить и в настройках MySQL — но моего опыта не достаточно чтобы правильно это сделать. Сейчас у меня в логах как будто все нормально, но данные в БД в таблице (cnldata) не появляются — не могу понять причину, может таки опять недонастроены файлы конфигурации MySQL 8.0 (я использовал стандартный установщик с их сайта и оставил установки которые были сделаны при инсталляции)
    В общем я не могу понять куда записываются мои данные и записываются ли они -прошу помочь в этом разобраться

    Лог файлы ниже (смущает: Файл состояния экспорта отсутствует я задавал уже этот вопрос для меня непонятно это ошибка или это же норма)

    ModDbExport
    2022-10-21 01:21:51 Запуск работы модуля ModDbExport
    2022-10-21 01:21:51 Карта каналов и КП загружена
    2022-10-21 01:21:51 Запуск экспорта

    ModDbExport_001
    2022-10-21 01:21:51 Запуск экспортёра «[1] MySQL localhost»
    2022-10-21 01:21:51 Файл состояния экспорта отсутствует

    ModDbExport_001.txt
    Состояние экспортёра
    ———————
    Наименование : [1] MySQL localhost
    Сервер БД :
    Соединение : норма

    Текущие данные
    —————
    Состояние : норма
    В очереди : 0 из 1000
    Экспортировано : 20
    Пропущено : 0

    Архивные данные
    —————
    Очередь не используется

    События
    ——-
    Очередь не используется

    Передача архивов
    —————-
    Отключена
    ___________________________

    #25614
    Mikhail
    Модератор

    Добрый день!
    «Файл состояния экспорта отсутствует» не является ошибкой.
    «Экспортировано : 20» — говорит о том, что экспорт осуществляется. В БД появились какие-то данные?

    #25619
    dnat1970
    Участник

    Добрый — данных нет
    Смотрю phpMyAdmin и чз консоль, данные и в консоле и в phpMyAdmin — заносятся в ручном режиме чз SQL запросы и их же в последствии видно, экспортируемых данных нет

    #25620
    dnat1970
    Участник

    Попробовал добавить к запросу в форме принадлежность таблицы cnldata к созданной мною базе gofroplk — результата то же не получил
    INSERT INTO gofroplk.cnldata (datetime, cnlnum, val, stat)
    VALUES (now(), 10, 11, 12);
    Добавил для эксперимента «;» в конце запроса — разницы не увидел

    #25621
    dnat1970
    Участник

    Базу данных и таблицы создавал из консоли использую SQL запросы которые находятся на сайте
    — Удалить таблицу данных входных каналов, если она существует
    DROP TABLE IF EXISTS cnldata;

    — Создать таблицу данных входных каналов
    CREATE TABLE cnldata (
    datetime DATETIME NOT NULL,
    cnlnum INT NOT NULL,
    val DOUBLE NOT NULL,
    stat SMALLINT UNSIGNED NOT NULL,
    PRIMARY KEY (datetime, cnlnum)
    ) ENGINE=InnoDB;

    CREATE INDEX idx_cnldata_cnlnum ON cnldata (cnlnum);

    — Удалить таблицу событий, если она существует
    DROP TABLE IF EXISTS events;

    — Создать таблицу событий
    CREATE TABLE events (
    datetime DATETIME NOT NULL,
    objnum INT NOT NULL,
    kpnum INT NOT NULL,
    paramid INT NOT NULL,
    cnlnum INT NOT NULL,
    oldcnlval DOUBLE NOT NULL,
    oldcnlstat SMALLINT UNSIGNED NOT NULL,
    newcnlval DOUBLE NOT NULL,
    newcnlstat SMALLINT UNSIGNED NOT NULL,
    checked TINYINT UNSIGNED NOT NULL,
    userid INT NOT NULL,
    descr CHAR(100),
    data CHAR(50)
    ) ENGINE=InnoDB;

    CREATE INDEX idx_events_datetime ON events (datetime);
    CREATE INDEX idx_events_objnum ON events (objnum);
    CREATE INDEX idx_events_kpnum ON events (kpnum);
    CREATE INDEX idx_events_cnlnum ON events (cnlnum);

    #25622
    dnat1970
    Участник

    Добавил триггер на архивные данные Лог файл показывает что все происходит нормально — но в БД данные не попадают
    Состояние экспортёра
    ———————
    Наименование : [1] MySQL localhost
    Сервер БД :
    Соединение : норма

    Текущие данные
    —————
    Состояние : норма
    В очереди : 0 из 1000
    Экспортировано : 11
    Пропущено : 0

    Архивные данные
    —————
    Состояние : норма
    В очереди : 0 из 1000
    Экспортировано : 15
    Пропущено : 0

    События
    ——-
    Очередь не используется

    Передача архивов
    —————-
    Готовность : да
    Индекс : 644
    Дата : 21.10.2022
    Мин. время : —
    Макс. время : —
    В очереди : —
    Отправлен : 21.10.2022 18:24:00

    #25623
    dnat1970
    Участник

    Информация о MySQL
    Сервер: localhost via TCP/IP
    Тип сервера: MySQL
    Соединение сервера: SSL не используется Документация
    Версия сервера: 8.0.30 — MySQL Community Server — GPL
    Версия протокола: 10
    Пользователь: user1@localhost
    Кодировка сервера: UTF-8 Unicode (utf8mb4)

Просмотр 15 сообщений - с 1 по 15 (из 22 всего)
  • Вы должны авторизироваться для ответа в этой теме.