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

如何在Mac上通过Sequel Ace连接Docker容器内的数据库?

问题描述

我有如下docker-compose.yml配置文件,不想使用phpMyAdmin,更倾向于在Mac上使用Sequel Ace连接数据库。尝试使用以下设置连接时无法连接到主机,报错:Unable to connect to host localhost, or the request timed out.。请问我哪里操作有误?

Sequel Ace 当前配置

host: 127.0.0.1
username: root
password: password
port: 3306

docker-compose.yml 配置内容

services:
  wordpress:
    image: wordpress:latest
    container_name: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content
    environment:
      - WORDPRESS_DB_NAME=wordpress
      - WORDPRESS_TABLE_PREFIX=wp_
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=root
      - WORDPRESS_DB_PASSWORD=password
    depends_on:
      - db
      - phpmyadmin
    restart: always
    ports:
      - 8080:80

  db:
    image: mariadb:latest
    container_name: db
    volumes:
      - db_data:/var/lib/mysql
      # 可选:初始化SQL文件
      - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_USER=root
      - MYSQL_PASSWORD=password
      - MYSQL_DATABASE=wordpress
    restart: always

  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin:latest
    container_name: phpmyadmin
    restart: always
    ports:
      - 8180:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password

volumes:
  db_data:

解决办法

问题核心是你的MariaDB容器没有对外暴露端口,本地Sequel Ace无法通过127.0.0.1:3306访问到容器内的数据库服务。

1. 修改docker-compose.yml配置

找到db服务块,添加端口映射配置:

db:
  image: mariadb:latest
  container_name: db
  volumes:
    - db_data:/var/lib/mysql
    - ./dump.sql:/docker-entrypoint-initdb.d/dump.sql
  environment:
    - MYSQL_ROOT_PASSWORD=password
    - MYSQL_USER=root
    - MYSQL_PASSWORD=password
    - MYSQL_DATABASE=wordpress
  restart: always
  ports:
    - 3306:3306  # 新增:将容器内3306端口映射到本地3306端口

2. 重启Docker容器

执行命令重启服务:

docker-compose down && docker-compose up -d

3. 重新连接Sequel Ace

保持你当前的Sequel Ace配置不变,再次尝试连接即可。

额外提示

  • 如果本地已有MySQL服务占用3306端口,可以修改映射端口为3307:3306,同时将Sequel Ace的端口改为3307。
  • db服务中的MYSQL_USER=root属于冗余配置,root是MariaDB默认超级用户,无需重复创建,可删除该环境变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:58:24