проект node.js с использованием express, knex, dotenv
Я создал копию своего проекта для обработки в качестве промежуточной среды.Он работает на том же хосте, что и мой живой проект, но на другом порту.При запуске сервера ошибок нет.
Однако, когда я перехожу к нему и пытаюсь получить /, который извлекает данные из БД через knex, я получаю эту ошибку в консоли:
Примечание: хотя мойЗначение хоста knexfile - «localhost», ошибка показывает внешний IP-адрес моего веб-сервера как тот, к которому он пытается подключиться (в приведенном ниже фрагменте «mywebserverIP») *
{ Error: connect ECONNREFUSED mywebserverIP:3306
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1082:14)
--------------------
at Protocol._enqueue (/usr/home/jessie/gs-staging/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/usr/home/jessie/gs-staging/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/usr/home/jessie/gs-staging/node_modules/mysql/lib/Connection.js:118:18)
at /usr/home/jessie/gs-staging/node_modules/knex/lib/dialects/mysql/index.js:95:18
at Promise._execute (/usr/home/jessie/gs-staging/node_modules/bluebird/js/release/debuggability.js:313:9)
at Promise._resolveFromExecutor (/usr/home/jessie/gs-staging/node_modules/bluebird/js/release/promise.js:483:18)
at new Promise (/usr/home/jessie/gs-staging/node_modules/bluebird/js/release/promise.js:79:10)
at Client_MySQL.acquireRawConnection (/usr/home/jessie/gs-staging/node_modules/knex/lib/dialects/mysql/index.js:90:12)
at create (/usr/home/jessie/gs-staging/node_modules/knex/lib/client.js:280:23)
at tryPromise (/usr/home/jessie/gs-staging/node_modules/tarn/lib/Pool.js:366:22)
at tryPromise (/usr/home/jessie/gs-staging/node_modules/tarn/lib/utils.js:57:20)
at Promise (/usr/home/jessie/gs-staging/node_modules/tarn/lib/Pool.js:366:5)
at new Promise (<anonymous>)
at callbackOrPromise (/usr/home/jessie/gs-staging/node_modules/tarn/lib/Pool.js:357:10)
at Pool._create (/usr/home/jessie/gs-staging/node_modules/tarn/lib/Pool.js:307:5)
at Pool._doCreate (/usr/home/jessie/gs-staging/node_modules/tarn/lib/Pool.js:275:32)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: 'mywebserverIP',
port: 3306,
fatal: true }
IЯ прочитал несколько сообщений о том, что означает отказ в соединении, и единственная причина, по которой я все еще озадачен, заключается в том, что это единственный из трех проектов на этом сервере, использующий этот конфиг, который имеет проблему.
Iиметь другой проект node / express / knex (утилита администратора), который использует ту же конфигурацию knex для подключения к той же базе данных на том же сервере MySQL с теми же учетными данными ... и он работает без проблем. Живой сайт запущен и работаетповсюду, с этой же конфигурацией.
Живая версия, промежуточная копия и утилита администратора имеют идентичные файлы knexfiles.(и сопоставление файлов .env для переменных):
module.exports = {
client: 'mysql',
connection: {
user: process.env.GS_DB_USER,
password: process.env.GS_DB_PASS,
host: process.env.GS_DB_HOST,
database: 'gs'
},
pool: {
min: 1,
max: 1
}
}
Я могу только представить, что копия конфликтует с действующим сайтом способом, который я не знаю, чтобы искать.Что мне не хватает?