我正在用mysql和node.js测试简单的代码,但是它说:Error: connect ECONNREFUSED 127.0.0.1:3306
这是我的代码:
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连接的代码。有人能解决这个问题吗?
发布于 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上运行。
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)的数据库。对于更大的数据库,他们会收费。
https://stackoverflow.com/questions/64855673
复制相似问题