Я только что купил свой собственный домен, включая веб-хостинг на сервере plesk.К счастью, они также предоставляют базу данных MySQL.Доступ к БД через MySQL Workbench (локально) работает очень хорошо, когда я вставляю свои учетные данные (по какой-то причине единственный рабочий метод подключения - это «Стандартный TCP / IP через SSH» (и даже не требуется местоположение для частного ключа)), но я не смог найти способ заставить это работать с помощью node.js.(Я использую версию 8.11.1).
Я решил использовать node.js, так как я хочу сделать некоторые интерактивные визуализации данных с d3, и так как у меня есть почти 40000 точек данных, я бы хотел передать на аутсорсинг как можно больше процессов.сервер по возможности.
Конечно, я хочу попробовать все локально, а также на сервере.
В соответствии с методом подключения, который я использовал с верстаком, я подозреваю использовать некоторые ssh-модули (просто используя mysqlмодуль тоже не будет работать).На данный момент я попробовал это:
mysql-ssh (https://www.npmjs.com/package/mysql-ssh)
Простое помещение моих учетных данных (включая закрытый ключ) в код примера просто возвращает эту ошибку:
events.js:183
throw er; // Unhandled 'error' event
^
Error: All configured authentication methods failed
at tryNextAuth (C:\Users\matth\git\soundstats_elak_titles\node_modules\ssh2\lib\client.js:380:17)
at SSH2Stream.onUSERAUTH_FAILURE (C:\Users\matth\git\soundstats_elak_titles\node_modules\ssh2\lib\client.js:591:5)
at emitTwo (events.js:126:13)
at SSH2Stream.emit (events.js:214:7)
at parsePacket (C:\Users\matth\git\soundstats_elak_titles\node_modules\ssh2-streams\lib\ssh.js:3929:10)
at SSH2Stream._transform (C:\Users\matth\git\soundstats_elak_titles\node_modules\ssh2-streams\lib\ssh.js:669:13)
at SSH2Stream.Transform._read (_stream_transform.js:186:10)
at SSH2Stream._read (C:\Users\matth\git\soundstats_elak_titles\node_modules\ssh2-streams\lib\ssh.js:251:15)
at SSH2Stream.Transform._write (_stream_transform.js:174:12)
at doWrite (_stream_writable.js:397:12)
Process finished with exit code 1
из моего непонятного первого блока в mysqlssh.connect
эквивалентно полям в конфигурациях соединений mysql Workbench SSH Hostname и SSH Username, тогда как второй блок эквивалентен MySQL Hostname иИмя пользователя
msql2 & ssh2 (как описано в
https://medium.com/@devontem/nodejs-express-using-ssh-to-access-mysql-remotely-60372832dd08)
Вставка учетных данных в этот пример Я впервые получил эти сообщения
(node:6548) UnhandledPromiseRejectionWarning: null
(node:6548) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:6548) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
и после ожидания в течение нескольких минут программазаканчивается этим сообщением:
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at _errnoException (util.js:1022:11)
at TCP.onread (net.js:628:25)
Process finished with exit code 1
здесь порядок блоков учетных данных, кажется, переключен по сравнению с mysql-ssh