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

后端Web开发:Express连接MySQL时Git-bash与localhost无响应问题

解决方案

核心错误修正

你首先犯了端口混用的基础错误:MySQL数据库服务和Express Web服务是两个独立的服务,不能占用同一个端口。

代码修改如下:

const express = require('express');
const mysql = require('mysql');
// Express服务端口用3000
const serverPort = 3000;

const leaderboardDb = mysql.createConnection({
    host: '127.0.0.1',
    user    : 'root',
    password: 'personalProj15',
    // MySQL默认端口为3306,和Web服务端口分开
    port    : '3306',
    // 注意:如果还没创建test数据库,可以先把这行注释掉,等创建完数据库再加回来
    // database: 'test'
    // Windows本地连接不需要配置socketPath,删掉这行即可
})


leaderboardDb.connect((err) => {
    if(err) {
        // 这里把错误完整打印出来,方便排查
        console.log('数据库连接失败:', err);
    }
    else {
        console.log('MySQL connected');
    }
}) 

const app = express();

app.listen(serverPort, () => {
    console.log(`Server started on port ${serverPort}`);
})


app.get('/createDb', (request, response) => {
    let sql = 'CREATE DATABASE leaderboardDatabase';
    leaderboardDb.query(sql, (err, result) => {
        if(err) { 
            console.log(err);
            response.status(500).send('数据库操作失败');
            return;
        }
        console.log(result);
        response.send("数据库创建成功");
    })
})

// 可选:添加根路由测试,解决访问localhost:3000返回Cannot GET /的问题
app.get('/', (req, res) => {
    res.send('服务运行正常');
})

后续排查步骤

  • 确认已安装MySQL本体
    npm安装的mysql包只是Node.js的连接驱动,不是数据库本身。如果你的Windows服务列表中找不到MySQL服务,需要先下载安装MySQL服务本体。
  • 启动MySQL服务
    按Win+R输入services.msc回车打开服务列表,找名称前缀为MySQL的服务(一般命名格式为MySQL+版本号,比如MySQL80),右键点击启动,设置启动类型为自动即可。
  • 验证配置正确性
    启动服务后再运行你的Node.js项目,控制台会打印连接成功/失败的日志,按日志提示调整账号密码等配置即可。
  • 本地回环地址访问不会触发防火墙拦截,无需修改防火墙配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:57:02