如何从java应用程序通过SSH连接到远程MySQL数据库?小代码示例对我很有帮助,我将不胜感激。 最佳答案 我的理解是,您想访问在远程机器上运行的mysql服务器,并通过SSH隧道监听端口3306。要使用命令行ssh客户端创建从本地计算机上的端口1234到远程计算机上的端口3306的隧道,您可以在本地计算机上键入以下命令:ssh-L1234:localhost:3306mysql.server.remote要在Java中做同样的事情,您可以使用JSch,SSH2的Java实现。来自其网站:JSchallowsyoutoconnec
我有大约50个数据库都设置在不同的主机名上,要求我通过SSH隧道连接到它们。例如:SSH主机位于ssh.example.com位于mysql1.example.com的MySQL主机我已经设法使用autossh(运行Debian的网络服务器)创建了隧道,但我似乎无法弄清楚如何连接到SSH隧道“之外”的特定MySQL主机名。输入lsof-i-n|egrep'\'确认隧道正在工作(将端口3307发送到ssh.example.com端口3306)所以当我尝试mysql-h127.0.0.1-P3307我得到连接被拒绝。不太奇怪,因为它不是MySQL服务器。我的问题给你们:如何指定mysql1
当我尝试通过SSH隧道连接到主机Mashine(vServer),然后尝试通过内部dockerContainer-IP连接时,我无法连接到MySQL。这是我的docker-compose文件。version:'2'services:mysql:build:./mysqlenvironment:MYSQL_ROOT_PASSWORD:testvolumes:-./db:/var/lib/mysql我找到的唯一解决方案是将mysql容器的MySQL-Port转发到Host-Mashine。version:'2'services:mysql:build:./mysqlenvironment:
为了成功地将私有(private)存储库克隆到基于Alpine的docker中,我需要运行以下命令:ssh-keyscangithub.com>>~/.ssh/known_hosts.但由于ssh-keyscan不是Alpinelinux的一部分(默认情况下),我必须先用apk安装它。问题是:我不知道怎么做-而且我在Google上的任何地方都找不到。 最佳答案 这花了很长时间才发现,因为它没有在任何地方记录:apkupdate&&apkaddopenssh或者:apkadd-qUopenssh
当我使用一些简单的基于alpine的容器时,docker开始产生奇怪的错误。其中两个问题是:rc-update在我尝试使用时没有找到安装openssh包后,/etc/ssh里面什么都没有或者没有/etc/init.d/sshd启动/重启服务为了避免混淆,我查看了一个广泛使用的容器,它用作简单的SSH服务器。你可以通过执行:gitclonehttps://github.com/chamunks/alpine-openssh.git之后进入alpine-openssh目录并使用以下命令构建容器:dockerbuild-talpine-openssh.我的产品如下:Sendingbuildc
我有一个简单的Dockerfile,如下所示:FROMubuntu:14.04RUNapt-getupdateRUNapt-get-yupgradeRUNmkdir-p/root/.sshRUNtouch/root/.ssh/known_hostsRUNssh-keyscangithub.com>>/root/.ssh/known_hosts运行结果:dockerbuild-no-cache-ttestimage.是:Step5:RUNssh-keyscangithub.com>>/root/.ssh/known_hosts--->Runningine11ef5962a11/bin/s
我在几个项目中使用Docker,其中一个要求是使用Docker文件生成sshkey,以便在构建容器时生成一对rsakey。我已经看到了一些通过以下方式生成key的示例.sh文件和Dockerfile具有运行该.sh文件的通用性。有没有办法我们可以直接在Dockerfile中而不是.sh中进行操作目前我在Dockerfile中使用以下内容来生成sshkey对。但这给了我错误说“/bin/shssh-keygennotfound”RUNssh-keygen-q-trsa-N''-f/home/docker/.ssh/id_rsa如果有人能提供实现相同目标的方法,那将非常有帮助。谢谢,亚什
如果没有Docker容器,使用SSHX11转发(ssh-X)在远程服务器上运行X11程序很简单。当应用程序在服务器上的Docker容器中运行时,我试图让同样的事情正常工作。当使用-X选项通过SSH连接到服务器时,会设置X11隧道,并且环境变量“$DISPLAY”会自动设置为通常为“localhost:10.0”或类似的。如果我只是尝试在Docker中运行X应用程序,我会收到以下错误:Error:GDK_BACKENDdoesnotmatchavailabledisplays我的第一个想法是使用“-e”选项将$DISPLAY实际传递到容器中,如下所示:dockerrun-ti-eDISP
我正在运行容器hypriot/rpi-busybox-httpd我正在尝试ssh到docker容器:但它给出了错误:pi@raspberrypi:~$dockerexec-itcc55da85b915bashrpcerror:code=2desc=ociruntimeerror:execfailed:container_linux.go:247:startingcontainerprocesscaused"exec:\"bash\":executablefilenotfoundin$PATH"pi@raspberrypi:~$dockerexec-itcc55da85b915shrpc
TL;DR基本上,我正在寻找这个:dockerpushmyimagessh://myvps01.vpsprovider.net/我无法理解整个DockerHub/Registry背后的基本原理。我知道我可以运行私有(private)注册表,但为此我必须设置实际运行服务器的基础架构。我偷看了Docker的内部工作原理(嗯,至少是文件系统),看起来Docker镜像层只是一堆tarball,或多或少,带有一些复杂的文件命名。我天真地认为编写一个简单的Python脚本来进行分布式推/拉并非不可能,但我当然没有尝试,所以这就是我问这个问题的原因。Docker不能像Git或Mercurial那样只