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

Redash无法通过套接字连接MySQL服务器问题求助

解决Redash连接MySQL时使用Unix套接字而非TCP的问题

核心问题原因

当Redash配置MySQL连接时,如果主机填localhost,MySQL客户端会优先尝试Unix套接字连接而非TCP。在Docker容器环境下,Redash与MySQL属于不同容器实例,无法共享套接文件,因此触发报错。

需要修改的配置

1. 调整Redash的MySQL连接参数

在Redash添加/编辑MySQL数据源时,修改以下关键参数:

  • 主机(Host):填写MySQL容器的名称mysql(而非localhost,Docker同一网络内可通过容器名直接解析)
  • 端口(Port):填写3306(与docker-compose中MySQL的端口映射一致)
  • 无需额外开启TCP强制开关,只要主机名指定为容器名mysql,就会自动走TCP连接。

2. 确保MySQL允许Redash容器访问

默认MySQL的root用户仅允许localhost访问,需创建一个允许跨容器访问的用户:
进入MySQL容器执行:

mysql -p

再执行SQL命令(替换占位符为实际值):

CREATE USER 'redash_user'@'%' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON 目标数据库.* TO 'redash_user'@'%';
FLUSH PRIVILEGES;

3. 可选:优化MySQL容器监听配置

如果需要确保MySQL监听所有网络接口,可添加自定义配置文件挂载:
在docker-compose的mysql服务中新增volumes配置:

mysql:
  # 原有配置...
  volumes:
    - ./my.cnf:/etc/mysql/my.cnf

my.cnf文件内容:

[mysqld]
bind-address = 0.0.0.0
port = 3306

验证步骤

  1. 重启所有服务:
docker-compose down && docker-compose up -d
  1. 在Redash中重新测试MySQL连接,确认错误消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:57:32