2016-08-21 7 views
1

Проблема возникает с помощью следующей команды: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] 
+0

привет, AFAIK knex просто передает конфигурацию в библиотеку pg: https://github.com/brianc/node-postgres/wiki/Client, если это так, то до pg можно каким-то образом использовать сокеты unix вместо tcp. – Sombriks

+0

@Sombriks Вы были правы, это был вопрос конфигурации postgresql. – MrSnappingTurtle

ответ

0

Оказывается, что переименование метода из md5 в trust было правильным решением. Я забыл перезапустить службу postgresql после внесения изменений, поэтому он не работал в первый раз.

 Смежные вопросы

  • Нет связанных вопросов^_^