2017-07-18 5 views
1

同様の問題が報告されていますが、解決策はありません。不正なハンドシェイクまたはECONNRESET Azure Mysql Nodejs

Azureでホストされているmysqlデータベースに接続するためにKNEXを使用するexpress.jsアプリがあります。

コンソールコマンドまたはmysql workbenchからDBに完全に接続できます。

しかし、私のノードのアプリケーションから同じを達成する方法はありません。

私の接続オブジェクトがが同じである:

#1

Unhandled rejection Error: read ECONNRESET 
at exports._errnoException (util.js:1050:11) 
at TCP.onread (net.js:582:26) 
-------------------- 
at Protocol._enqueue (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:141:48) 
at Protocol.handshake (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:52:41) 
at Connection.connect (C:\Projects\gdpr\node_modules\mysql\lib\Connection.js:130:18) 
at C:\Projects\gdpr\node_modules\knex\lib\dialects\mysql\index.js:106:18 
at Promise._execute (C:\Projects\gdpr\node_modules\bluebird\js\release\debuggability.js:300:9) 
at Promise._resolveFromExecutor (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:483:18) 
at new Promise (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:79:10) 
at Client_MySQL.acquireRawConnection (C:\Projects\gdpr\node_modules\knex\lib\dialects\mysql\index.js:104:12) 
at Object.create (C:\Projects\gdpr\node_modules\knex\lib\client.js:239:16) 
at Pool._createResource (C:\Projects\gdpr\node_modules\generic-pool\lib\generic-pool.js:354:17) 
at Pool.dispense [as _dispense] (C:\Projects\gdpr\node_modules\generic-pool\lib\generic-pool.js:314:10) 
at Pool.acquire (C:\Projects\gdpr\node_modules\generic-pool\lib\generic-pool.js:436:8) 
at C:\Projects\gdpr\node_modules\knex\lib\client.js:289:19 
at Promise._execute (C:\Projects\gdpr\node_modules\bluebird\js\release\debuggability.js:300:9) 
at Promise._resolveFromExecutor (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:483:18) 
at new Promise (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:79:10) 

:私はアプリを起動

config.knex = require('knex')({ 
    client: 'mysql', 
    connection: { 
     host: 'wineserver.mysql.database.azure.com', 
     user: '[email protected]', 
     password: 'FromageDeChevre', 
     database: 'gdpr', 
     insecureAuth: true 
    }, 
    pool: { 
     min: 0 
    }, 
    debug: ['ComQueryPacket'] 
}); 

毎回、私が代わりに1つのエラーまたは他のいずれかを取得しますプロセスは終了コード0で終了しました。

または

#2

Unhandled rejection Error: ER_HANDSHAKE_ERROR: Bad handshake 
at Handshake.Sequence._packetToError (C:\Projects\gdpr\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14) 
at Handshake.ErrorPacket (C:\Projects\gdpr\node_modules\mysql\lib\protocol\sequences\Handshake.js:103:18) 
at Protocol._parsePacket (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:280:23) 
at Parser.write (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Parser.js:75:12) 
at Protocol.write (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:39:16) 
at Socket.<anonymous> (C:\Projects\gdpr\node_modules\mysql\lib\Connection.js:103:28) 
at emitOne (events.js:96:13) 
at Socket.emit (events.js:191:7) 
at readableAddChunk (_stream_readable.js:178:18) 
at Socket.Readable.push (_stream_readable.js:136:10) 
at TCP.onread (net.js:561:20) 
-------------------- 
at Protocol._enqueue (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:141:48) 
at Protocol.handshake (C:\Projects\gdpr\node_modules\mysql\lib\protocol\Protocol.js:52:41) 
at Connection.connect (C:\Projects\gdpr\node_modules\mysql\lib\Connection.js:130:18) 
at C:\Projects\gdpr\node_modules\knex\lib\dialects\mysql\index.js:106:18 
at Promise._execute (C:\Projects\gdpr\node_modules\bluebird\js\release\debuggability.js:300:9) 
at Promise._resolveFromExecutor (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:483:18) 
at new Promise (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:79:10) 
at Client_MySQL.acquireRawConnection (C:\Projects\gdpr\node_modules\knex\lib\dialects\mysql\index.js:104:12) 
at Object.create (C:\Projects\gdpr\node_modules\knex\lib\client.js:239:16) 
at Pool._createResource (C:\Projects\gdpr\node_modules\generic-pool\lib\generic-pool.js:354:17) 
at Pool.dispense [as _dispense] (C:\Projects\gdpr\node_modules\generic-pool\lib\generic-pool.js:314:10) 
at Pool.acquire (C:\Projects\gdpr\node_modules\generic-pool\lib\generic-pool.js:436:8) 
at C:\Projects\gdpr\node_modules\knex\lib\client.js:289:19 
at Promise._execute (C:\Projects\gdpr\node_modules\bluebird\js\release\debuggability.js:300:9) 
at Promise._resolveFromExecutor (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:483:18) 
at new Promise (C:\Projects\gdpr\node_modules\bluebird\js\release\promise.js:79:10) 
Process finished with exit code 0 

ノードとアズールのMySQLサーバ間の非互換性のようなもののようです。

誰も同じ経験をしましたか?

+0

'user: 'BurgerAndGreenBeans @ wineserver''を' user:' BurgerAndGreenBean'に置き換えてみてください。あなたの接続URIは基本的に 'USER:PASSWORD @ SERVER/DATABASE'です – coockoo

答えて

2

同様の質問:Connecting to Azure Database for MySQL in npm/mysql。 @Gary Liuが指摘したように、回避策としてpull 1730を使用することができます。 、その後、

"dependencies": { 
    "knex": "^0.13.0", 
    "mysql": "git://github.com/mysqljs/mysql#e3e123e9af7c0829a6c1417d911572a75b4a5f95" 
} 

このバージョンをインストールするnpm installを実行します。

としてpackage.jsonを変更してください。

+0

ありがとう –

関連する問題