如何连接到远程ubuntu服务器上的docker容器数据库?

时间:2020-07-20 17:22:21

标签: mysql docker ubuntu

我尝试左右搜索,但找不到解决问题的方法。我可以在dbeaver上的本地主机上很好地连接到docker容器的数据库(只需通过连接到localhost / 127.0.0.1 / ubuntuip),但是要连接到远程ubuntu服务器上的docker mysql容器(而不是ubuntu)在我的计算机上运行),则不起作用。

我尝试过的事情

  • 连接到ubuntu服务器ip(通过执行“主机名-I”;
  • 连接到在远程ubuntu服务器上运行“ curl http://checkip.amazonaws.com”(显示为ssh)时显示的ip;
  • 在远程ubuntu服务器上执行inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id时,连接到docker容器ip。

这些都不起作用,老实说我有点迷路了。当我在远程ubuntu服务器上执行select host, user from mysql.user时,我得到了:

mysql> select host, user from mysql.user;

+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

据我了解,我应该可以连接到它,因为我允许任何主机(这是dev,而不是prod)。我可以轻松地ping我的db容器,在其中以及所有内容中创建表都很好。我只是无法从我的Dbeaver连接到它。

感谢您的帮助,谢谢:)

1 个答案:

答案 0 :(得分:0)

解决了。就像David Maze所说的那样,我必须连接到与以前用于ssh相同的URL,但是我已经尝试过了。我要做的是也进入dbeaver的SSH选项卡,添加主机(相同的url),然后将auth方法选择为“ public key”,然后选择了位于{{1的ssh密钥文件夹(id_rsa)。 }}。我将“密码”留为空白,现在可以使用了!

感谢您的帮助!