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

Windows10 Ubuntu子系统中Django连接XAMPP MySQL遭拒绝

解决WSL中Django连接XAMPP MySQL的2003连接拒绝问题

核心原因

WSL的127.0.0.1是子系统自身的回环地址,和Windows主机的回环不是同一个,直接连本地回环会失败。

解决步骤

  • 修改MySQL绑定地址
    打开XAMPP控制面板,点击MySQL的Config按钮,选择my.ini文件:

    • 找到bind-address = 127.0.0.1这一行,改成bind-address = 0.0.0.0(允许所有IP访问),或者直接注释掉这行。
    • 保存后重启XAMPP的MySQL服务。
  • 创建允许跨IP访问的MySQL用户
    用XAMPP自带的phpMyAdmin登录,或者在Windows的CMD里执行mysql -u root -p登录MySQL,然后执行以下命令:

    -- 替换your_user、your_password、your_database为你的实际信息
    CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'%';
    FLUSH PRIVILEGES;
    

    这里的%表示允许该用户从任何IP访问MySQL,也可以指定WSL的具体IP(更安全)。

  • 获取Windows主机的内网IP
    在Windows的CMD里执行ipconfig,找到以太网适配器 WSL或者本地连接的IPv4地址,比如192.168.1.100。

  • 修改Django数据库配置
    打开项目的settings.py,找到DATABASES配置块,把HOST的值从'127.0.0.1'改成刚才获取的Windows内网IP,保持PORT为3306:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'your_database',
            'USER': 'your_user',
            'PASSWORD': 'your_password',
            'HOST': '192.168.1.100',  # 替换成你的Windows内网IP
            'PORT': '3306',
        }
    }
    
  • 检查Windows防火墙
    确保Windows防火墙允许MySQL的3306端口入站:

    • 打开Windows Defender防火墙,进入高级设置,添加一条入站规则,允许TCP端口3306的连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:25:22