当你在 Docker Desktop 上部署 MySQL 后,如果 Sequel Ace 无法连接,可能是以下几个原因导致的。以下是详细的排查和解决方法:
确保 MySQL 容器正确映射了端口:
docker run --name some-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
验证端口映射:
docker port some-mysql
进入容器并检查用户权限:
docker exec -it some-mysql mysql -uroot -p
执行以下 SQL:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
FLUSH PRIVILEGES;
检查 MySQL 配置文件是否绑定了 127.0.0.1:
docker exec -it some-mysql bash
cat /etc/mysql/my.cnf
确保有 bind-address = 0.0.0.0
或注释掉该行
检查 Docker Desktop 和主机防火墙是否允许 3306 端口通信
在 Sequel Ace 中使用以下配置:
- Host: 127.0.0.1
(如果 MySQL 运行在本地 Docker)
- Username: 你创建的用户名
- Password: 对应的密码
- Port: 3306 (或你映射的其他端口)
- Database: 可选,可以留空先测试连接
docker logs some-mysql
mysql -h 127.0.0.1 -P 3306 -u username -p
services:
mysql:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_DATABASE: dbname
networks:
- my-network
如果问题仍然存在,请提供具体的错误信息以便进一步诊断。