首页 > 解决方案 > 如何通过 ssh 和 docker 将一些图形化 sql 工具连接到数据库

问题描述

我想通过 ssh 和 docker 将我的 GUI 数据库工具连接到我的 SQL 数据库。ssh user@host目前可以通过终端使用和一些docker-compose exec mydb ...命令连接做数据库。但是,它当然是对 db 的命令行访问。

我的需求/我的问题

有没有办法让我的 GUI 数据库工具以这种方式连接到该数据库?更明确地说,我想连接到该数据库而不需要任何类型的服务器更改(非常重要的一点)。所以只有本地配置更改。也许我们可以使用我可以手动使用的相同方式?

我试过的

我已经尝试在我的配置文件中使用一些 ssh 配置,例如 ssh 配置文件中的 ProxyCommand,但是这些命令是在我的计算机中执行的……所以我找不到任何成功的方法。

我也多次寻找有相同意愿的人,但没有成功。

有好主意的人?

标签: dockeruser-interfacesshdatabase-connectionssh-config

解决方案


这里有一些事情需要考虑。

  1. 确保端口映射在docker-compose.yaml文件中有效,它应该类似于
services:
  ...
  database:
    ...
    ports:
    - "3306:3306" # 3306 is the default Non-SSL port for MySQL database images
  1. 确保您运行数据库容器的机器没有防火墙规则来阻止传入流量
  2. 确保在数据库中,您尝试连接的用户具有列入白名单的位置。例如,如果您希望能够root从任何地方进行连接,则需要检查 mysql 数据库中的用户表,它应该类似于:
mysql> select User, Host from user;
+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | %         |
| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)

mysql> 

在这种情况下,root由于通配符 (%) 主机,用户可以从任何地方连接到此特定数据库。


推荐阅读