2016-08-21 8 views
1

問題は、次のコマンドを使用して行われます(UNIXのアカウントを使用していない)ユーザー "ユーザー名" に失敗しました:Knex:エラーpool2は - エラー:パスワード認証は

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アカウントを使用せず、代わりにユーザー名/パスワードを使用して認証しようとしているようです。

# IPv4 local connections: host all all 127.0.0.1/32 trust

  • :から信頼する方法を置き換える

    • アップデート最新
    • から

    • 更新knex最新のpg:私は、次の解決方法を試してみました

      の接続文字列を置き換えます。[postgres://[db name]に:

      connection: { 
          database: 'postgres://data-api-dev', 
          user:  '', 
          password: '' 
      }, 
      

    は、どのように私はそれが私のUNIXアカウントを使用して取得するには?

    私はノードv6.3.1を使用してUbuntu 16.04を使用しています。ここで

    は私のインストールパッケージです:

    ├── [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は、configオブジェクトをpgライブラリに渡します:https://github.com/brianc/node-postgres/wiki/Clientもしそうなら、代わりにUNIXソケットを使う方法を提供するのはpgですtcp接続。 – Sombriks

    +0

    @Sombriksあなたは正しいです、これはpostgresqlの設定問題でした。 – MrSnappingTurtle

    答えて

    0

    md5からtrustにメソッドの名前を変更することは正解だったことが判明します。私は変更を加えた後にpostgresqlサービスを再起動するのを忘れてしまったので、初めて動作しませんでした。