Проблема возникает с помощью следующей команды:Knex: Ошибка Pool2 - ошибка: пароль аутентификации не удалось для пользователя "имя пользователя" (Не используя UNIX счет)
knex --knexfile config/db/knexfile.js migrate:latest
Я получаю следующее сообщение об ошибке:
Knex:warning - Pool2 - Error: Pool was destroyed
Knex:Error Pool2 - error: password authentication failed for user "dennis"
Knex:Error Pool2 - error: password authentication failed for user "dennis"
Error: Pool was destroyed
at Pool._destroyPool (/home/dennis/projects/amgen-sites/data-api/node_modules/pool2/lib/pool.js:560:20)
at Pool.<anonymous> (/home/dennis/projects/amgen-sites/data-api/node_modules/pool2/lib/pool.js:474:18)
at Pool.<anonymous> (/home/dennis/projects/amgen-sites/data-api/node_modules/pool2/lib/pool.js:517:17)
at tryCatcher (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/util.js:16:23)
at Promise.errorAdapter [as _rejectionHandler0] (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/nodeify.js:35:34)
at Promise._settlePromise (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/promise.js:558:21)
at Promise._settlePromise0 (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/promise.js:606:10)
at Promise._settlePromises (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/promise.js:681:18)
at Async._drainQueue (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/async.js:138:16)
at Async._drainQueues (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/async.js:148:10)
at Immediate.Async.drainQueues (/home/dennis/projects/amgen-sites/data-api/node_modules/knex/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:570:20)
at tryOnImmediate (timers.js:550:5)
at processImmediate [as _immediateCallback] (timers.js:529:5)
Похоже, что он не использует мою учетную запись UNIX и вместо этого пытается аутентифицироваться с использованием имени пользователя/пароля.
Я попытался следующие решения:
- Update
pg
до последней - Update
knex
до последней заменить метод доверять от:
# IPv4 local connections: host all all 127.0.0.1/32 trust
замените строку подключения
[db name]
в[postgres://[db name]
:connection: { database: 'postgres://data-api-dev', user: '', password: '' },
Как я использовать мою учетную запись UNIX?
Я нахожусь на Ubuntu 16.04, используя Node v6.3.1.
Вот мои установленные пакеты:
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] (git://github.com/gulpjs/gulp.git#d8f5c90a0622d19ef1943a2a3d02dc50e3c853e7)
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]
привет, AFAIK knex просто передает конфигурацию в библиотеку pg: https://github.com/brianc/node-postgres/wiki/Client, если это так, то до pg можно каким-то образом использовать сокеты unix вместо tcp. – Sombriks
@Sombriks Вы были правы, это был вопрос конфигурации postgresql. – MrSnappingTurtle