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文件权限,终端执行:
确保当前用户有读取权限,若异常重启MAMP PRO即可修复。ls -l /Applications/MAMP/tmp/mysql/mysql.sock
额外排查点
- 确认MAMP PRO的MySQL服务处于启动状态(顶部栏MySQL图标为绿色)
- 若坚持用TCP端口连接,需在MAMP PRO的MySQL设置中开启「Allow network access to MySQL」,再用
127.0.0.1:端口号连接,同时确保本地防火墙未拦截该端口
内容的提问来源于stack exchange,提问作者A4tur
相关产品推荐
相关产品推荐

