首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:在MySQL、Heroku和Node.js上连接ECONNREFUSED 127.0.0.1:3306

问错误:在MySQL、Heroku和Node.js上连接ECONNREFUSED 127.0.0.1:3306
EN

Stack Overflow用户
提问于 2020-11-16 17:42:54
回答 1查看 510关注 0票数 0

我正在用mysql和node.js测试简单的代码,但是它说:Error: connect ECONNREFUSED 127.0.0.1:3306

这是我的代码:

代码语言:javascript
复制
require('dotenv').config();
const mysql = require('mysql2/promise');


module.exports = mysql.createConnection({
    user: process.env.DB_USER,
    password: process.env.DB_PASS,
    database: process.env.DB_NAME
});

我刚开始做一些mysql连接的代码。有人能解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-16 20:11:03

按照heroku的工作方式,您的web dyno (虚拟机)不能内置MySQL实例。也就是说,当您使用web dyno时,您将无法连接到本地主机上的MySQL。

Heroku提供了他们自己的postgreSQL服务,你可以使用(当然,你必须将你的web应用程序代码从MySQL更改为postgreSQL )。或者有一些不同的第三方MySQL插件,你可以在你的Heroku应用中安装。https://elements.heroku.com/addons/

这些产品中的每一个都需要您使用从web dyno获得的环境变量连接到它。因此,如果您执行类似的操作,而不是进行调试,您将能够在本地和dyno上运行。

代码语言:javascript
复制
const dburl = process.env.MYSQL_ADDON 
    ||   'mysql://' + process.env.DB_USER+ ':' + process.env.DB_PASS 
        + '@localhost/' + process.env.DB_NAME

const conn = mysql.createConnection(dburl);

您使用的附加组件具有解释其环境变量的名称和详细信息的文档。

可用的第三方插件有免费的层,允许您处理非常小(5MiB)的数据库。对于更大的数据库,他们会收费。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64855673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档