|
■No101990 (kiku さん) に返信
>>御返信ありがとうございます。
> ソースの下記まで実行し、
> 27 fpl.Start()
> MySQL WorkbenchでSSH接続の設定やポートフォワードの設定を除いてDBに接続できないでしょうか?
上記の部分の意味が私のスキルでは理解できません。
また、 27 fpl.Start() の後に
If ssh_client IsNot Nothing AndAlso ssh_client.IsConnected Then
MessageBox.Show("転送OK", "ssh_db接続", MessageBoxButtons.OK)
End If
というコードを追加したところ、"転送OK" というメッセージを確認できたので、
ポートフォワーディングまでは、正常に機能していると考えています。
尚、最初に記述したコードで転記する際に手を加えたとことで少し誤りがありましたので、冗長ではありますが
再度掲載させて頂きます。
01 Imports Renci.SshNet
02 Imports MySql.Data.MySqlClient
-----------------------------------------------------------------------------------------------
03 Public Class Mainform
04 'SSH接続設定
05 Friend ssh_port As Integer = 2222 'サーバ側SSHの待ち受けport番号(デフォルト値を変更しています。)
06 Friend ssh_host As String = “192.168.10.36” 'リモートホストのIPアドレス
07 Friend ssh_user As String = "aaa" 'サーバーのユーザー名
08 Friend ssh_key As PrivateKeyFile = New PrivateKeyFile("C:\Users\user\Documents\aaa\id_rsa.pem","pass01")
'("秘密キーのパス", "キーのパスフレーズ")'
09 Friend ssh_mthd As AuthenticationMethod = New PrivateKeyAuthenticationMethod(ssh_user, ssh_key)
10 Friend ssh_cninf As ConnectionInfo = New ConnectionInfo(ssh_host, ssh_port, ssh_user, ssh_mthd)
11 Friend ssh_client As SshClient = New SshClient(ssh_cninf)
12 ' ポートフォワーディング設定
13 Dim localPort As Integer = 49999 'クライアント機の空きポート番号
14 Dim remotePort As Integer = 3306 'サーバー機のMySQL用ポート番号
15 Dim fpl = New ForwardedPortLocal("127.0.0.1", localPort, ssh_host, remotePort)
16 'DB接続設定
17 Friend mysql_conn As MySqlConnection
18 Friend mysql_db As String = "schm01" '対象データベース
19 Friend mysql_user As String = "bbb" 'MySQLユーザー
20 Friend mysql_pswd As String = "pass02" 'bbbのMySQLパスワード
・・・・・
-----------------------------------------------------------------------------------------
21 Sub New()
22 InitializeComponent()
23 'SSH接続
24 ssh_client.Connect()
25 'ポート転送
26 ssh_client.AddForwardedPort(fpl)
27 fpl.Start()
28 'MySQLログイン
29 Dim cnstr As String = $"server={fpl.BoundHost};" &
30 $"port={fpl.BoundPort};" &
31 $"database={mysql_db};" &
32 $"user={mysql_user};" &
33 $"password={mysql_pswd}"
34 mysql_conn = New MySqlConnection(cnstr)
35 mysql_conn.Open()
修正点
06 IPアドレスを文字列とする””が抜けていました。
33 参照する変数名に間違いがありました mysql_password を mysql_pswd に変更
I
|