💽
HeidiSQL SSHトンネルでMariaDBに接続する
はじめに
これは、表記の課題を解決した際のメモ書きで、未来の自分に宛てたものです。
環境
- Debian Server 12.6
- パスワードでのリモート接続は不可、SSHのみ接続可能です。
-
3306
ポートはファイアウォールで塞がれています。 - MariaDB 10.11
-
127.0.0.1
にバインドされています。
-
- Windows 11 Pro
- HeidiSQL 12.8
HeidiSQL とは
OSSのDBクライアントで、MariaDB、MySQL、Microsoft SQL、PostgreSQL、SQLiteなどに対応しています。
ホーム
リポジトリ
ドキュメント
HeidiSQL の設定
設定
SSHで接続した後の接続設定です。
- ネットワーク種別
MariaDB or MySQL (SSH tunnel)
- Library
libmariadb.dll
- WSL2のUbuntuでMySQL(8.0.39)を使用した際は、
libmysql-8.4.0.dll
またはlibmariadb.dll
で接続できました。
- ホスト名
-
localhost
(または127.0.0.1
)
-
- ユーザー、パスワード
- DBのアカウントです。
- 「ユーザー名とパスワードを毎回入力する」にチェックすると、空欄にできます。
- チェック前に入力しておくと、保存されて自動入力されます。
- 事前の入力の有無にかかわらず、毎回ダイアログが開きます。
- なお、チェックなしで空欄にすると、「パスワードなし」な扱いになるようです。
- ポート
- DBの待ち受けポートです。
- その他
- デフォルトのままです。
SSH トンネル
SSHで接続するための設定です。
- Use SSH tunnel
- チェックします。
- SSH executable
plink.exe
- パスも書けます。必要ならダウンロードします。
- SSH ホスト + ポート
- SSHのアドレスとポートです。
- ユーザー名、パスワード
- SSHのアカウントです。
- 空欄にすることで、毎回入力になります。
- サーバがパスワード不可なので、パスワードは入力しても意味がありません。
- SSH タイムアウト
- デフォルトのままで大丈夫でした。
- タイムアウト待ちが生じたときに、この時間待たされるので、エラーしない最小限が望ましいです。
- 秘密鍵ファイル
- PuTTY形式の秘密鍵ファイルを指定しました。
- ローカルポート
- これはSSH接続(時? 後?)の送出ポートらしいです。デフォルトのままにしました。
設定の保存
- ここまで済んだら、設定を保存します。
接続
- 「開く」を押すと、しばらくして、まずDBのアカウント(毎回入力時のみ)、次にSSHのユーザー名(未入力時)、続いて鍵のパスフェーズを聞いてきます。
- SSHのユーザー名だけを入力していると、パスフェーズ入力時にエラーが表示されますが、その後接続できます。(パスワード接続にチャレンジしている?)
- パスフェーズのない鍵は試していません。
- 設定によっては、しばらく待たされます。
- 途中でキャンセルする方法は解りませんでした。
接続に失敗する場合
- 「SSH exited unexpected.」の場合は、SSHトンネルの設定を見直します。
- 「Access denied for ~ (using password: YES)」の場合は、設定のDBのパスワードが書き換わっている(?)可能性があるので、再設定してみましょう。
おわりに
お読みいただきありがとうございました。
Discussion