导航:
论坛 -> 数据库专区
斑竹:liumazi,waterstone
作者:
2016/1/2 0:43:36
标题:
Delphi能通过SSH登录Linux,连接MYSQL取数么?像Navicat一样
浏览:5950
加入我的收藏
楼主:
Delphi能通过SSH登录Linux,连接MYSQL取数么? SSH是远程连接Linux的其中一种通道方式。 目前Linux的MYSQL不允许开放远程访问,因此只能SSH登录Linux后访问MYSQL。 像Navicat 有参数是SSH通道,填Linux服务器的IP、用户、密码, 还有参数填安装在Linux下的MYSQL IP、用户、密码,Navicat能连接上MYSQL取数了 Delphi的组件基本只能直连填MYSQL IP、用户、密码,目前找不到相关先通过SSH,再MYSQL连接的资料啊。 不知道用什么方法能在本地通过SSH连接上远程Linux服务器上的MySQL 求大侠们指点指点
----------------------------------------------
-不忘初心,方得始终-
作者:
2016/1/2 5:55:43
1楼:
Navicat就是Delphi做的,你说行不行?
----------------------------------------------
只有偏执狂才能生存!
作者:
2016/1/2 9:43:04
2楼:
引用:Navicat就是Delphi做的,你说行不行? 请问大侠,如何实现呢?求指点
----------------------------------------------
-不忘初心,方得始终-
作者:
akay (akay)
★☆☆☆☆
-
普通会员
2016/1/2 17:33:27
3楼:
有个heidisql是开源的,可连。
----------------------------------------------
-
作者:
2016/1/2 19:30:03
4楼:
可以得使用UniDAC+SecureBridge
----------------------------------------------
作者:
2016/1/2 21:39:46
5楼:
谢谢 akay (akay),那要慢慢分析heidisql的源代码呀...
----------------------------------------------
-不忘初心,方得始终-
作者:
2016/1/2 21:40:19
6楼:
谢谢 xuchuantao (暗黑天使),能有具体的UniDAC + SecureBridge通过SSH连接MYSQL的例子或文档吗? SecureBridge 的DEMO只有简单的SSH连接例子,不知道如何结合UniDAC使用呢...
----------------------------------------------
-不忘初心,方得始终-
作者:
2016/1/3 1:41:30
7楼:
谢谢各位大侠,经过2天的摸索,基本把功能实现了。 大部分SSH连接软件都有SSH通道转发功能,就是用这个实现的。 如果Delphi在代码上实现的话,用libSSH 或者 SecureBridge都可以。 代码基本不用帖,思路给大家讲一下吧。 SSH有端口转发(映射)功能,把Linux的MYSQL端口,映射到本机对应的端口后, 然后访问就等于本机安装了MYSQL直接访问了。
----------------------------------------------
-不忘初心,方得始终-
作者:
2016/1/3 20:14:58
8楼:
到UniDAC的Demos\TechnologySpecific\SecureBridge 目录里安装好控件.然后添加CRSSHIOHandler控件,再在设置一下unidac的IOHandler就可以使用SecureBridge了.
----------------------------------------------
作者:
2016/1/4 9:02:53
9楼:
To:xuchuantao (暗黑天使) 谢谢,太感谢了!
----------------------------------------------
-不忘初心,方得始终-
作者:
2016/1/5 1:06:27
10楼:
再通过 xuchuantao (暗黑天使) 大侠的指点: 目前可以通过SSH通道端口映射或者 用 UniDac + SecureBridge 实现。 UniDAC的Demos\TechnologySpecific\SecureBridge 还有个CRSSLIOHandler组件要安装 拖出 SSHClient、SSHChannel、 CRSSLIOHandler、FileStorage 组件 UniConnection IOHandler属性关联一下组件 CRSSLIOHandler 再按一般直连方式填入 MySQL连接信息即可 SSHClient组件 HostName(Linux服务器IP)、PassWord(密码)、Port(端口)、User(Linux 登录用户如:ROOT) 然后就全部OK了 当然SSH要KEY才可以的 在SSHClient 的 OnServerKeyValidate 事件加入 var Key: TScKey; fp, msg: string; begin Key := ScFileStorage.Keys.FindKey(ScSSHClient.HostName); if (Key = nil) or not Key.Ready then begin NewServerKey.GetFingerPrint(haMD5, fp); NewServerKey.KeyName := ScSSHClient.HostName; ScFileStorage.Keys.Add(NewServerKey); Accept := True; end; end; 才行,否则运行的时候连接会提示 Host key not verified 然后就可以愉快的连接了,当然MySQL乱码问题还是要设置一下utf8 和 useunicode
----------------------------------------------
-不忘初心,方得始终-
作者:
2017/8/2 23:16:44
11楼:
大神们能给个demo吗?万分感谢,弄了好几晚上了也不行
----------------------------------------------
就是喜欢研究Delphi…
作者:
2017/8/2 23:29:19
12楼:
@xhuchuantao能帮小弟看看吗?
----------------------------------------------
就是喜欢研究Delphi…
作者:
2023/4/8 10:55:55
13楼:
SecureBridge费用很高。在lazarus下有LibSSH2,可以改改在Delphi下用,现在已可以用SFTP了。你可以下载Lazarus-ssh-main,里面有sftp的例子。在libssh2_utils。很好用。但要用到mysql,还没研究。
----------------------------------------------
-
作者:
2023/4/8 17:18:34
14楼:
端口转发是一个好办法。SSH 的开源免费独立工具很多,任何独立工具只要支持端口转发,你把它运行起来就可以了。 如果要 Delphi 自己的代码直接支持,我搜到一个: https://en.delphipraxis.net/topic/3118-ssh-library-for-delphi/
----------------------------------------------
-
作者:
2023/4/8 17:22:25
15楼:
搜到有人写了个博客,内容就是这里的帖子: https://www.cnblogs.com/findumars/p/5914810.html
----------------------------------------------
-
作者:
2023/4/8 17:33:04
16楼:
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
呆湾傻冒
作者:
2023/4/9 21:59:15
17楼:
别挖坟呀
----------------------------------------------
作者:
2023/4/9 22:15:02
18楼:
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
呆湾傻冒
作者:
2023/7/14 22:10:12
19楼:
查到一个方法,只在思路。 Lazarus下用LIBSSH2 初始化libssh2库 会话创建 建立TCP连接到外网主机 身份验证 执行SSH操作 返回数据 但好像这种方式只能执行命令行,就是直接用mysql登录并执行Mysql命令。不能用Mysql控件进行操作。 正在研究中,有搞出来的分享一下。
----------------------------------------------
-
作者:
2023/7/27 16:47:49
20楼:
Lazarus下libssh2加TMySQL56Connection,通过SSH主机远程登录mysql的DLL可以用了。还是免费的好用。
----------------------------------------------
-
作者:
2024/4/25 10:37:15
21楼:
使用SecureBridge我实现了,但使用libssh2端口转发也不报错,但不能用
----------------------------------------------
女人不能惯,越惯越混蛋!