Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查与MySQL的连接是否使用SSH?_Mysql_Delphi_Ssh - Fatal编程技术网

如何检查与MySQL的连接是否使用SSH?

如何检查与MySQL的连接是否使用SSH?,mysql,delphi,ssh,Mysql,Delphi,Ssh,我正在使用Delphi 2009中新安装的MyDac 10.1.3和Securebridge 9.2连接到一个远程MySQL数据库,该数据库托管在共享服务器(位于JustHostMe)上,他们声称允许SSH。我没有访问服务器本身的权限,因此无法运行任何管理类型的命令,只有SQL。我可以使用端口3306正常连接,但希望使用SSH进行连接 我遵循了教程,制作了我的私钥和公钥,将我的公钥传输到服务器,并使用cpanel对其进行授权,特别是为本教程创建了一个新的数据库用户。tutotal说要用TCRSS

我正在使用Delphi 2009中新安装的MyDac 10.1.3和Securebridge 9.2连接到一个远程MySQL数据库,该数据库托管在共享服务器(位于JustHostMe)上,他们声称允许SSH。我没有访问服务器本身的权限,因此无法运行任何管理类型的命令,只有SQL。我可以使用端口3306正常连接,但希望使用SSH进行连接

我遵循了教程,制作了我的私钥和公钥,将我的公钥传输到服务器,并使用cpanel对其进行授权,特别是为本教程创建了一个新的数据库用户。tutotal说要用TCRSSHIOHandler,但调色板上没有,所以我用TMySSHIOHandler代替,看起来是一样的

ScSSHClient中的端口如本教程中所述设置为22,但TMyConnection上的端口将仅接受3306(我测试时,22不会连接)

基本上,测试应用程序运行、连接到数据库并显示SQL
SHOW STATUS
(我将其作为测试放入查询中)的结果

我的问题很简单,

如何检查连接是否使用SSH

请记住,我正在运行一个连接到共享服务器的Delphi应用程序,我没有管理员访问权限

我读过,但这似乎是假设我可以直接访问服务器

如果有人要求查看这个极简主义应用程序的代码,那么整个过程都很简单

unit U_frmMain;
// see https://www.devart.com/mydac/docs/ssh.htm

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ScSSHClient, ScBridge, StdCtrls, Grids, DBGrids, DB, MemDS, DBAccess,
  MyAccess, CRVio, CRSSLIOHandler, MySSLIOHandler, CRSSHIOHandler,
  MySSHIOHandler;

type
  TForm1 = class(TForm)
    MyConnection1: TMyConnection;
    MyQuery1: TMyQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    ScFileStorage1: TScFileStorage;
    ScSSHClient1: TScSSHClient;
    MySSHIOHandler1: TMySSHIOHandler;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
MyQuery1.open;
end;

end.

这并不是那么容易,您必须在云主机上设置到mysql服务器的ssh隧道。您必须具有管理员权限才能设置此设置。在您链接的Devart文章中,他们展示了如何在windows服务器上执行此操作,但我猜JustHostMe将是一个linux box…mysql工作台,并在tcp over ssh上设置,看看您是否可以连接到myql服务器,您必须输入ssh主机名127.0.0.1,当然,您可以启动wireshark并查看密码是否被传输进来cleartext@whosrdaddy. 谢谢你,我在文章的第2部分中看到了设置窗口服务器的过程,但我认为只有在我没有使用securebridge,而是使用openssl的情况下,我才会这样做。JustHostMe声明服务器已准备好SSH,cpanel具有安装和验证公共证书的功能。这似乎表明管理员已经尽了自己的一份力?如果尝试在尚未为其设置的服务器上使用SSH隧道进行连接,会以纯文本方式进行连接,还是无法连接?这将是它是否工作的一个线索。隧道将在某个端口上发布(不是端口22,这将使您能够访问linux shell,而不是端口3306,因为这是标准的MySQL端口),我查看了JustHostMe文档,没有提到SSH隧道,因此假设这不是设置。您始终可以使用Putty之类的SSH客户端进行验证,或者如上所述使用Wireshark。这并不容易,您必须在云主机上设置一个到mysql服务器的SSH隧道。您必须具有管理员权限才能设置此设置。在您链接的Devart文章中,他们展示了如何在windows服务器上执行此操作,但我猜JustHostMe将是一个linux box…mysql工作台,并在tcp over ssh上设置,看看您是否可以连接到myql服务器,您必须输入ssh主机名127.0.0.1,当然,您可以启动wireshark并查看密码是否被传输进来cleartext@whosrdaddy. 谢谢你,我在文章的第2部分中看到了设置窗口服务器的过程,但我认为只有在我没有使用securebridge,而是使用openssl的情况下,我才会这样做。JustHostMe声明服务器已准备好SSH,cpanel具有安装和验证公共证书的功能。这似乎表明管理员已经尽了自己的一份力?如果尝试在尚未为其设置的服务器上使用SSH隧道进行连接,会以纯文本方式进行连接,还是无法连接?这将是它是否工作的一个线索。隧道将在某个端口上发布(不是端口22,这将使您能够访问linux shell,而不是端口3306,因为这是标准的MySQL端口),我查看了JustHostMe文档,没有提到SSH隧道,因此假设这不是设置。您可以始终使用SSH客户端(如Putty)进行验证,或者如上所述使用Wireshark。