【问题标题】:Unable to connect remote mysql from nodejs app无法从 nodejs 应用程序连接远程 mysql
【发布时间】:2019-08-14 15:46:26
【问题描述】:

数据库连接在本地主机上工作正常,但在远程主机上不工作。我从我的 cpanel 中获得了共享 ip 的 ip。我有什么遗漏吗?

    const db = mysql.createConnection({
    host: '195.201.179.80',
    user: '****',
    password: '****',
    database: 'enamme_m-tube'
});
db.connect(function (err) {
    if (err) throw err
    console.log('Connection Established To Mysql Database')
})

注意:我的 Node 应用程序在 localhost 上运行。

错误:

Error: connect ECONNREFUSED 195.201.179.80:3306
    at Object._errnoException (util.js:992:11)
    at _exceptionWithHostPort (util.js:1014:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1186:14)

【问题讨论】:

    标签: javascript mysql node.js


    【解决方案1】:

    你应该连接到root下的MYSQL并发送查询:

    GRANT ALL ON *.* TO <db_user>@<remote_ip> IDENTIFIED BY '<db_user_pass>';
    

    【讨论】:

    • #1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法,以便在 '-tube.* TO enamme_enam@195.201.179.80 IDENTIFIED BY '***********'' at line 1
    • GRANT ALL ON *.* TO enamme_enam@&lt;remote_ip&gt; IDENTIFIED BY '***************'; 请注意,&lt;remote_ip&gt; - 是客户端 IP。不是 195.201.179.80
    【解决方案2】:

    你的 mysqld 绑定到公共 IP 地址了吗?默认情况下,mysqld 将绑定到 UNIX 套接字。尝试将其添加到您的 /etc/my.cnf

    [mysqld]
    bind-address = <your_public_ip>
    

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 2018-07-09
      • 2023-03-27
      相关资源
      最近更新 更多