ブログBLOG

MySQL WorkbenchでSSHの不具合で接続できない場合の対処法

MySQL WorkbenchでSSHの不具合で接続できない場合の対処法

MySQL Workbenchで「Standard TCP/IP over SSH」で、DBに接続する際に「外部コンポーネントが例外をスローしました」と表示されてしまい、接続できない現象が発生しました。最終的な原因としては、Windows のユーザー名に全角(日本語)を使っている場合に起こってしまうエラーになります。

Windows のユーザー名に日本語を使っていると「known_hosts」を保存する際に、参照するパスに全角(日本語)が入ってしまい、正常に保存出来ずに不具合が発生してしまいます。ログインユーザー名は、なかなか変更することは難しいものですので、別の対処法で回避しましょう。今回は、その流れを紹介します。

MySQL Workbenchで接続できない現象

MySQL Workbenchのバージョンは8.0.33になります。「Standard TCP/IP over SSH」の接続方法で設定を進め、DBに接続をしようとすると「Could not connect the SSH Tunnel」と表示されます。これは初めてSSHで接続する際に表示されるものですので「OK」をクリックして進めましょう。

すると「外部コンポーネントが例外をスローしました」と表示されて、接続が出来ません。再度、接続を試してみても、同じように「Could not connect the SSH Tunnel」が表示されて、DBに接続することが出来ない現象が発生しました。

すると「外部コンポーネントが例外をスローしました」と表示されて、接続が出来ません。再度、接続を試してみても、同じように「Could not connect the SSH Tunnel」が表示されて、DBに接続することが出来ない現象が発生しました。

パスに全角が入っていることが原因

色々と確認してみると、どうやら「known_hosts」を参照する際に、パスに全角が入っていることが原因のようです。ただ通常は、MySQL Workbenchが自動的に、日本語のフォルダをエンコードして、そちらに「known_hosts」が保存されます。

それが、今回のようにWindowsのログインユーザー名に全角(日本語)が使われていると、同じ階層にエンコードしたフォルダを作成することが出来ずに、今回のようなエラーが発生してしまうようです。

「known_hosts」の保存先を変更

「known_hosts」の保存先は「C:\user(ユーザー)\[ユーザー名]\.ssh\known_hosts」になります。その為、全角のユーザー名を回避できるような階層に、known_hostsをコピーしましょう。

例えば、「C:」ドライブの直下に「ssh」というようなフォルダを作成し、その中にknown_hostsを配置(コピー)します。パスとしては「C:\ssh\known_hosts」のようになります。そして、MySQL Workbenchの設定を変更します。

MySQL Workbenchの設定を変更

MySQL Workbenchを起動したら「Edit」から「Preference…」をクリックします。

MySQL Workbenchを起動したら「Edit」から「Preference...」をクリックします。

 

設定画面が表示されますので、左のメニューから「SSH」を選択して、「Path to SSH known hosts file:」の項目に「C:\ssh\known_hosts」を入力しましょう。(こちらのパスは、ご自身で「known_hosts」を配置した階層を入力します)

設定画面が表示されますので、左のメニューから「SSH」を選択して、「Path to SSH known hosts file:」の項目に「C:\ssh\known_hosts」を入力しましょう。(こちらのパスは、ご自身で「known_hosts」を配置した階層を入力します)

これで「OK」をクリックしたら完了です。

DBに接続をしようとすると「Could not connect the SSH Tunnel」が表示されるので「OK」をクリックしたら、DBに正常に接続出来るようになっていると思います。

まとめ

システムに携わっていると、全角が入っているとエラーが発生することはよくあります。その為、Windowsのユーザー名なども全角を使わないようにしておくと安心かもしれませんね。

関連記事

CONTACTお問い合わせ

システム開発やWEBサイト制作についてのご相談、お見積のご依頼などは、下記の窓口にて承ります。
まずはお気軽にお問い合わせください。お問い合わせはEメール・お電話にて承ります。