Mysql和NodeJS无法远程连接到已部署的应用程序

我试图从一个NodeJS应用程序连接到一个MySQL数据库(已部署,不在本地主机),目前它会抛出一个错误:

Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'user'@'187.189.130.120' (using password: YES) at Handshake.Sequence._packetToError (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\sequences\Sequence.js:48:14) at Handshake.ErrorPacket (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\sequences\Handshake.js:101:18) at Protocol._parsePacket (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\Protocol.js:271:23) at Parser.write (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\Parser.js:77:12) at Protocol.write (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\Protocol.js:39:16) at Socket.<anonymous> (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\Connection.js:82:28) at Socket.emit (events.js:95:17) at Socket.<anonymous> (_stream_readable.js:748:14) at Socket.emit (events.js:92:17) at emitReadable_ (_stream_readable.js:410:10) -------------------- at Protocol._enqueue (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\Protocol.js:135:48) at Protocol.handshake (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\protocol\Protocol.js:52:41) at Connection.connect (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\node_modules\mysql\lib\Connection.js:109:18) at Object.<anonymous> (C:\wamp\Respaldo Linux\Documentos\WebDev\misGastosApp\app.js:87:12) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) 

如果我login到我的cpanel帐户,然后将我的公共IP添加到MySQL远程连接,我可以连接应用程序与MySQL数据库,但我想知道如何才能使它的应用程序在生产时工作。 我已经读过,许多用户授予用户的所有权限,这些用户已经做了,但仍然一样(无法连接)。

我还读到,我可以授予远程访问通配符的IP,但如果我这样做,我需要授予在墨西哥的所有IP的访问权限? 我一直在阅读很多事情,试图完成这个连接。 我的主要目标是在生产中,能够下载应用程序到我的手机(或任何人的手机),然后访问应用程序并连接到MySQL。 这是因为我需要经常检查数据是否是新的,然后同步到MySQL。 另外我有一些疑问,如果允许远程MySQL连接将是一个安全问题?

注意:这是我的第一个应用程序与同步和NodeJS-MySQL,所以任何意见,真的很感激。

这不是一个NodeJS问题。 您尚未授予所有主机对数据库的“用户”访问权限。

http://dev.mysql.com/doc/refman/5.1/en/grant.html

在MySQL shell中是这样的:

 GRANT SELECT ON db.* TO 'user'@'%' 

%代表所有主机不只是一个