Java 无法从本地计算机连接到服务器上运行的mysql docker(错误10061)-工作台

Java 无法从本地计算机连接到服务器上运行的mysql docker(错误10061)-工作台,java,mysql,spring,docker,docker-compose,Java,Mysql,Spring,Docker,Docker Compose,所以我有一个生产服务器,我想用Mysql工作台连接到它 当我启动应用程序时,一切都正常运行,所以我可以通过服务器的IP和凭据连接到它 我的docker compose如下所示: ... workaround-mysql: container_name: workaround-mysql image: mysql environment: MYSQL_DATABASE: workaround MYSQ

所以我有一个生产服务器,我想用Mysql工作台连接到它

当我启动应用程序时,一切都正常运行,所以我可以通过服务器的IP和凭据连接到它

我的docker compose如下所示:

...
     workaround-mysql:
        container_name: workaround-mysql
        image: mysql
        environment:
          MYSQL_DATABASE: workaround
          MYSQL_USER: someuser
          MYSQL_PASSWORD: somepass
          MYSQL_ROOT_PASSWORD: somepassss
          MYSQL_ROOT_HOST: %
        ports:
          - "3308:3306"
        restart: always
....
因此,在我的prod机器上,我运行spring应用程序、mysql和nginx。 当我尝试通过workbench连接时,我得到的错误是:

错误10061

我不明白我做错了什么。我在做本地测试时没有遇到任何问题。工作台运转良好

我还需要做一些额外的设置吗?我可以通过docker compose进行这些必要的设置吗?

在我的防火墙上,我已将accept连接设置为mysql端口:

哦,还有一点需要注意的是:当我在工作台上按下connect时,我正确地得到了这个错误,我甚至没有输入密码的提示

和docker为mysql部件编写输出:


也许这只是一个输入错误,但您将3308作为端口放在docker compose文件中。因此,要么将其修复为3306,要么在连接时使用3308。

尝试了这两种方法,要么得到10060,要么得到10061。Bud在3306的情况下是10061,在3308的情况下是llike超时,这需要很长时间,然后你得到错误10060你是否也在端口3308上打开了防火墙?也许先用telnet或nmap检查与这些端口的连接以确定。我将打开3308并尝试,我还将尝试在更新的应答中显示nmap输出是的,您现在为我节省了一些时间,非常感谢,我没有想到这会是防火墙端口问题。真棒,使用3308打开端口并重新启动服务器,现在我设法登录。你是野兽。很高兴我能帮上忙。有时是一些小事。但是,如果您以前在docker compose文件中有端口3306,并且在防火墙中打开端口,那么也应该使用端口3306。看起来我没有从本地计算机访问以某种方式连接到thsi服务器的权限,我需要设置一些可以为我的用户执行的操作,目前不知道是什么。