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

Rust连接MAMP PRO MySQL持续出现Connection refused错误求助

解决Rust连接MAMP PRO MySQL报"Connection refused (os error 61)"的问题

核心原因

MAMP PRO的MySQL默认优先通过Unix Socket提供服务,而非单纯依赖TCP端口。之前的配置未指定正确的Socket路径,导致连接请求被拒绝。

步骤1:获取MAMP的MySQL Socket路径

打开MAMP PRO的MySQL设置面板,找到「Socket」选项,复制完整路径。默认路径一般为:
/Applications/MAMP/tmp/mysql/mysql.sock

步骤2:修改Rust连接配置

根据你使用的数据库crate,添加Socket参数:

示例1:使用mysql crate

use mysql::*;

fn main() -> Result<()> {
    // 替换为你的用户名、密码、数据库名和实际Socket路径
    let db_url = "mysql://root:root@localhost/test_db?socket=/Applications/MAMP/tmp/mysql/mysql.sock";
    let pool = Pool::new(db_url)?;
    let mut conn = pool.get_conn()?;
    
    // 测试连接
    match conn.query_first("SELECT 1") {
        Ok(res) => println!("连接成功: {:?}", res),
        Err(e) => eprintln!("连接失败: {}", e),
    }
    Ok(())
}

示例2:使用diesel(通过环境变量)

在.env文件中修改数据库URL:

DATABASE_URL=mysql://root:root@localhost/test_db?socket=/Applications/MAMP/tmp/mysql/mysql.sock

步骤3:验证权限

  • 确认MySQL用户允许localhost连接(MySQL中localhost对应Socket连接,和127.0.0.1的TCP连接权限是分开的)
  • 检查Socket文件权限,终端执行:
    ls -l /Applications/MAMP/tmp/mysql/mysql.sock
    
    确保当前用户有读取权限,若异常重启MAMP PRO即可修复。

额外排查点

  • 确认MAMP PRO的MySQL服务处于启动状态(顶部栏MySQL图标为绿色)
  • 若坚持用TCP端口连接,需在MAMP PRO的MySQL设置中开启「Allow network access to MySQL」,再用127.0.0.1:端口号连接,同时确保本地防火墙未拦截该端口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:00:55