#mysql #docker #node-red
#mysql #docker #узел-красный
Вопрос:
У меня есть два отдельных контейнера докеров, один с запущенным узлом Red и один с запущенным MySQL. Я создаю узел в контейнере node red, используя плагин contrib-mssql-plus-box для node red. У меня есть таблица в контейнере MySQL с некоторыми данными в ней, называемыми TimeData.
Затем я связываю узел Node Red с IP-адресом контейнера, как в мостовой сети по умолчанию в docker, с соответствующими данными для входа.
В узле MSSQL у меня есть следующий код:
SELECT TOP 1 * FROM TimeData;
Я пытаюсь записать это на обычный узел отладки (см. Макет ниже).
Но, когда я пытаюсь это сделать, мой контейнер node red выходит из строя со следующей ошибкой:
18 Nov 13:56:28 - [red] Uncaught Exception:
18 Nov 13:56:28 - RangeError [ERR_BUFFER_OUT_OF_BOUNDS]: Attempt to write outside buffer bounds
at boundsError (internal/buffer.js:47:11)
at Buffer.readUInt8 (internal/buffer.js:213:5)
at Packet.isLast (/data/node_modules/tedious/lib/packet.js:112:29)
at ReadablePacketStream.<anonymous> (/data/node_modules/tedious/lib/message-io.js:91:18)
at ReadablePacketStream.emit (events.js:198:13)
at addChunk (/data/node_modules/readable-stream/lib/_stream_readable.js:291:12)
at readableAddChunk (/data/node_modules/readable-stream/lib/_stream_readable.js:278:11)
at ReadablePacketStream.Readable.push (/data/node_modules/readable-stream/lib/_stream_readable.js:245:10)
at ReadablePacketStream.Transform.push (/data/node_modules/readable-stream/lib/_stream_transform.js:148:32)
at ReadablePacketStream._transform (/data/node_modules/tedious/lib/message-io.js:57:16)
Я не уверен, почему я получаю здесь ошибку границ внешнего буфера? Это мой запрос MySQL или моя настройка контейнера, которая вызывает это?
Ответ №1:
Похоже, вы используете не тот узел, MySQL ! = MSSQL.
Для связи с MySQL используется узел MS SQL (для базы данных Microsoft). Это просто не сработает.
Вам необходимо установить узел MySQL, например https://flows.nodered.org/node/node-red-node-mysql