我为我的mysql和spring-boot应用程序设置了docker。我的应用程序运行良好,并且还连接到MySQL容器。但是我无法通过MySQL Workbench(或任何其他客户端)远程访问我的MySQL容器。
每次尝试远程连接到MySQL容器时,都会收到一条错误消息
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
尽管如此,我可以通过docker bash访问我的MySQL容器。只是我无法远程访问它。
这是我的docker-compose.yml
version: '2.1'
services:
my-mysql:
container_name: my-mysql
image: mysql/mysql-server:5.7
environment:
MYSQL_DATABASE: test_database
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: '%'
ports:
- '3301:3301'
expose:
- '3301'
restart: always
my-app:
image: my-app
build:
context: ./spring-boot-app
dockerfile: Dockerfile
ports:
- 8087:8080
volumes:
- /data/spring-boot-app
depends_on:
my-mysql:
condition: service_healthy
简而言之,一切正常,我的应用程序,我的mysql容器。只是我无法远程访问MySQL容器。
请注意,我正在使用Ubuntu 18.04 LTS
答案 0 :(得分:0)
谢谢@ ramachandran-a-g帮助我。 :)
这是我一直在做的一个愚蠢的错误。
用3301:3301
代替3301:3306
解决了这个问题。
我现在可以远程访问我的MySQL容器。