公司的一個項目,使用的nodejs做服務端,資料庫是postgresql,在本地時一切ok,放在centos時,postgresql配置ok,可以遠程訪問,但是nodejs在centos啟動時,就會報錯,找不到postgresql服務,Error Msg如下: 09/14 10:00:27 - in ...
公司的一個項目,使用的nodejs做服務端,資料庫是postgresql,在本地時一切ok,放在centos時,postgresql配置ok,可以遠程訪問,但是nodejs在centos啟動時,就會報錯,找不到postgresql服務,Error Msg如下:
09/14 10:00:27 - info: Error: Failed to find PostgresSQL server. Please double check your settings.
at connectCallback (/home/sm_dir/CenterAPI/node_modules/sequelize/lib/dialects/postgres/connector-manager.js:112:35)
at /home/sm_dir/CenterAPI/node_modules/pg/lib/pool.js:54:25
at /home/sm_dir/CenterAPI/node_modules/pg/node_modules/generic-pool/lib/generic-pool.js:271:11
at /home/sm_dir/CenterAPI/node_modules/pg/lib/pool.js:27:26
at null.<anonymous> (/home/sm_dir/CenterAPI/node_modules/pg/lib/client.js:172:5)
at emit (events.js:95:17)
at Socket.<anonymous> (/home/sm_dir/CenterAPI/node_modules/pg/lib/connection.js:56:10)
at Socket.emit (events.js:95:17)
at net.js:834:16
at process._tickDomainCallback (node.js:502:13)
遠程訪問都可以,結果本地卻不行,一直沒有頭緒。幾經周折,在一個stack overflow的帖子中找到了靈感,帖子的鏈接如下:http://stackoverflow.com/questions/21740560/node-server-cant-connect-to-postgres-db
node-modules=>pg對password,不支持一些特殊字元,其中就有#,而我的資料庫密碼是:local#123. 於是,移除#,改為local123,之後=》“Init => db success...”,終於成功連接上了。
總結:事後分析,遠程連接ok,是postgresql配置的問題,遠程和本地連接走的驗證方式不一樣.