docker - 如何通过 ssh 和 docker 将一些图形化 sql 工具连接到数据库
问题描述
我想通过 ssh 和 docker 将我的 GUI 数据库工具连接到我的 SQL 数据库。ssh user@host
目前可以通过终端使用和一些docker-compose exec mydb ...
命令连接做数据库。但是,它当然是对 db 的命令行访问。
我的需求/我的问题
有没有办法让我的 GUI 数据库工具以这种方式连接到该数据库?更明确地说,我想连接到该数据库而不需要任何类型的服务器更改(非常重要的一点)。所以只有本地配置更改。也许我们可以使用我可以手动使用的相同方式?
我试过的
我已经尝试在我的配置文件中使用一些 ssh 配置,例如 ssh 配置文件中的 ProxyCommand,但是这些命令是在我的计算机中执行的……所以我找不到任何成功的方法。
我也多次寻找有相同意愿的人,但没有成功。
有好主意的人?
解决方案
这里有一些事情需要考虑。
- 确保端口映射在
docker-compose.yaml
文件中有效,它应该类似于
services:
...
database:
...
ports:
- "3306:3306" # 3306 is the default Non-SSL port for MySQL database images
- 确保您运行数据库容器的机器没有防火墙规则来阻止传入流量
- 确保在数据库中,您尝试连接的用户具有列入白名单的位置。例如,如果您希望能够
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
由于通配符 (%) 主机,用户可以从任何地方连接到此特定数据库。
推荐阅读
- c++ - 如何利用尾部填充?
- security - 在 HTTP 到 HTTPS 重定向期间验证请求标头
- google-chrome-extension - 是否可以在左右单击 chrome 扩展图标时执行不同的操作
- php - 如何更正 WordPress Genesis 网站页脚中显示的错误年份?
- xml - 如何让我的 xsl-fo 表格像表格一样显示?
- javascript - 反应一个组件正在改变一个复选框类型的不受控制的输入以被控制
- javascript - 将图像从firebase显示到我的网站的问题如何解决?
- java - 按字母顺序对 TreeMap 值进行排序
- javascript - 隐藏显示支持 html5
- ios - Xamarin.iOS - 尝试使用 LoadDataRepresentation 从 NSItemProvider 获取 NSData 时出现问题