插件窝 干货文章 Docker MySQL 容器连接报错:如何解决 Sequel Ace 连接失败问题?

Docker MySQL 容器连接报错:如何解决 Sequel Ace 连接失败问题?

MySQL Docker 容器 连接 427    来源:    2025-03-30

解决 Sequel Ace 连接 Docker MySQL 容器失败问题

当使用 Sequel Ace 连接 Docker 中的 MySQL 容器时遇到连接失败,通常有以下几种原因和解决方案:

常见原因及解决方案

1. 容器未正确暴露端口

确保 MySQL 容器已正确映射端口:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:tag

验证端口映射:

docker ps
# 应看到类似 0.0.0.0:3306->3306/tcp 的映射

2. MySQL 用户权限问题

进入容器并检查用户权限:

docker exec -it some-mysql mysql -uroot -p

# 在 MySQL 中执行
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
FLUSH PRIVILEGES;

3. 绑定地址限制

检查 MySQL 是否只绑定到 localhost:

docker exec -it some-mysql bash
cat /etc/mysql/my.cnf

确保有类似配置:

[mysqld]
bind-address = 0.0.0.0

4. 防火墙或安全组限制

检查主机防火墙设置:

# Linux
sudo ufw status
sudo ufw allow 3306

# macOS
sudo pfctl -sr | grep 3306

5. 容器网络问题

确保容器使用正确的网络模式:

docker network inspect bridge

Sequel Ace 连接配置建议

  1. 主机地址

    • 如果在本机连接:使用 127.0.0.1localhost
    • 如果在远程连接:使用 Docker 主机的 IP 地址
  2. 端口:确保与 Docker 映射的端口一致(默认为 3306)

  3. 用户名/密码:使用在 MySQL 中创建的用户凭据

  4. SSL:如果不需要加密连接,可以尝试禁用 SSL 选项

调试步骤

  1. 首先测试从容器内部连接:
docker exec -it some-mysql mysql -uroot -p
  1. 然后测试从主机连接:
mysql -h 127.0.0.1 -P 3306 -u username -p
  1. 检查 MySQL 错误日志:
docker logs some-mysql

通过以上步骤,通常可以定位并解决 Sequel Ace 连接 Docker MySQL 容器失败的问题。