You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Homebrew安装的MySQL连接失败,疑遭Anaconda干扰求助

MySQL连接ECONNREFUSED问题排查求助

之前一直用本地安装的MySQL处理关系型数据库需求,近几个月转做MongoDB项目,现在启动新的关系型数据项目时,用MySQL+Sequelize持续出现ECONNREFUSED错误,怀疑环境被搞乱了,整理相关信息如下:

环境信息

  • 通过Homebrew安装MySQL,执行brew search mysql可见5.7和8.0版本共存
  • 当前使用Node.js 18.19.1、Sequelize 6.29.3
  • 数月前为Python课程安装过Anaconda

已尝试操作及错误反馈

  1. 执行brew uninstall完全卸载MySQL,运行brew doctor和brew cleanup后重装,问题依旧
  2. brew services start mysql显示启动成功,但直接输入mysql命令报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
  1. 在Mac OS Sonoma 14.2.1中查找my.cnf,仅在Anaconda安装目录下找到多个该文件,Homebrew安装的MySQL对应的配置文件无法定位(确认当前无Anaconda环境运行)
  2. 尝试创建仅指定/tmp/mysql.sock的my.cnf并放置在/etc/mysql,无效
  3. 即使Homebrew的MySQL服务显示运行,启动项目服务器仍报错:
ConnectionRefusedError [SequelizeConnectionRefusedError]: connect ECONNREFUSED 127.0.0.1:3306
  1. 启动一个未使用ORM的早期MySQL项目,同样出现连接失败问题

补充异常信息

执行mysql.server start时,服务器尝试调用Anaconda中的资源,启动失败,出现多个Anaconda路径下的“no such file or directory”错误

此前可正常运行的项目配置

connection.js

const Sequelize = require('sequelize');
require('dotenv').config();

let sequelize;

sequelize = new Sequelize(
  process.env.DB_NAME,
  process.env.DB_USER,
  process.env.DB_PASSWORD,
  {
    host: '127.0.0.1',
    dialect: 'mysql',
    port: 3306
  }
);

module.exports = sequelize;

server.js

const path = require('path');
const express = require('express');
const session = require('express-session');
const SequelizeStore = require('connect-session-sequelize')(session.Store);

const routes = require('./controllers');
const sequelize = require('./config/connection');
const helpers = require('./utils/helpers');

const app = express();
const PORT = process.env.PORT || 3001;

const sess = {
    secret: process.env.SECRET,
    cookie: {
        maxAge: (1000 * 60 * 30),
        httpOnly: true
    },
    rolling: true,
    resave: false,
    saveUninitialized: true,
    store: new SequelizeStore({
        db: sequelize,
    })
};

app.use(session(sess));

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, 'public')));

app.use(routes);

sequelize.sync({ force: false }).then(() => {
  app.listen(PORT, () => console.log('Now listening'));
});

内容的提问来源于stack exchange,提问作者lkalliance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:26:13