PCからMySQL WorkbenchのSSH接続でTCP/IPを使用して接続できません。どうしたの?
UbuntuサーバーにMySQL 5.1データベースを作成しましたmysql.myhost.com。ローカルでアクセスできます。 MySQL Workbench(PC)は、ssh経由でTCP=を介して接続を確立することを提供します。コマンドラインmysqlが正常に機能するリモートサーバーのポート3306で実行されます。
次のセッション詳細を使用しました。
接続しようとすると、「ユーザーrootでmysql.myhost.comのSSHトンネルを介して127.0.0.1:3306でMySQLに接続できませんでした」というエラーメッセージが表示されます。
「 '127.0.0.1'のMySQLサーバーに接続できません(10061) "
別のテストとして、PuTTYを使用してポート3306でSSHトンネルをセットアップし、MySQL Workbenchを使用して、上記のようにローカル3306への接続をリモートサーバーに転送するトンネルを介してOKに接続できます。しかし、Workbenchで「TCP/IP over SSH」を機能させることができません。
2番目の質問:Workbenchが「SSH公開鍵ファイルへのパス」を要求する場合、本当に秘密鍵ファイルが必要ではありませんか?
私自身がこのエラーに遭遇したとき、私はこの質問に遭遇しました。やっと構成が分かりました。
最後に、MySQL WorkBenchに次のように入力しました。
残りの唯一のことは、パスワードではなくキーを使用するようにSSHサーバーを正しく構成することです。これが誰かを助けることを願っています。
SSH接続のTCP/IPアプローチは、MySQL接続の基礎となる「通常の」SSH接続を確立することで機能すると思います(OpenSSHコマンドラインクライアントで-L
を使用してトンネルを作成するのと同じ方法で)。
したがって、トンネルを確立するサーバー上のSSHサーバーへの接続を指定する必要があります。ここでは、mysql.myhost.com:3306
を使用しているようです。これは、このSSHサーバー(MySQLではない)をポート3306で実行していることを意味します。
MySQLサーバーを127.0.0.1:3306にバインドし、SSHサーバーをポート3306のmysql.myhost.com
の外部IPアドレスにバインドすることは可能ですが、それはほとんどありません。 SSHサーバーはポート22(デフォルト)でリッスンしていると思います。
おそらくmysql.myhost.com:22
を使用する必要があります。 (PuTTYなどの通常のSSHクライアント経由で接続できることも確認してください。)
Mysql.userテーブルでユーザーを確認する必要がある場合があります。
このクエリを実行します。
SELECT user,Host FROM mysql.user;
次のようなものが表示されます。
mysql> SELECT user,Host,password FROM mysql.user;
+------------------+-------------+-------------------------------------------+
| user | Host | password |
+------------------+-------------+-------------------------------------------+
| root | localhost | *7A670E02260CDEEFF062DD08F3A6F6DA079998CB |
| ping | % | *124E1DB56CC8D6E2FEE8315BB2544BF04B980DB6 |
| admin | 10.67.135.% | 1a6858054a41fede |
| icorbin | 10.67.135.% | 366ed93a7396650e |
+------------------+-------------+-------------------------------------------+
4 rows in set (0.00 sec)
注意してください
RootをTCP/IP経由で接続する場合は、rootユーザーのIPアドレスまたはネットブロックを指定する必要があります。
このようなもの:
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'whateverpassword';
またはrootパスワードがroot @ localhostと同じ場合
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY PASSWORD '*7A670E02260CDEEFF062DD08F3A6F6DA079998CB ';
警告:root @ '%'は通常推奨されません。たぶんroot@'10.% 'や他のrootのネットブロックを試してみてください。
試してみる !!!
MySQL Workbenchの古いバージョンを使用していて、更新する必要がある場合があります。これはバージョン6.0.8のバグで、現在Ubuntuリポジトリのバージョンです。バージョン6.3.6に更新すると、これが修正されました。
ここからダウンロード: http://dev.mysql.com/downloads/workbench/#downloads
他の回答で言及されていないことの1つは、SO( https://stackoverflow.com/questions/34504232/mysql-workbench-failing-to-connect-via-ssh-due-to-key/38108623#3810862 )。
そこでの回答にもかかわらず、MySQL Workbench 6.3.7(64ビット、Windows 10)でパスワード保護されたキーを使用することができました。
私の問題は、ed25519
SSHキーを使用しようとしたことが原因でした。 auth.log
のSSHサーバーでこのエラーに気づきました:
sshd[25251]: Connection closed by 192.168.x.x [preauth]
RSAキーの使用に切り替えると、すべてが期待どおりに機能しました。
Sshを介してサーバーに接続しようとしているが、mysqlポートを使用している。必要なポートは、sshサーバーがリッスンしているもので、通常は22、次にmysqlのホスト名とポートにはlocalhostと3306です。
同じエラーが発生しました。問題は、「ある程度」のタイムアウトです。私は120秒まで値をクランクアップしましたが、役に立ちませんでした。
私の場合、nslookup myserver.comを実行し、ホスト名の代わりにIPアドレスを使用して解決できます。私の仮定は、IPv4からIPv6に接続しようとするときの問題です。
PuTTYによって作成されたキーが機能しない場合があります。 Linuxボックスでssh-keygenを使用して、キーペアを作成します。新しいid_rsaの内容をWindowsのテキストファイルにコピーします。 Linuxボックスのauthorized_keysにid_rsa.pubの内容を必ず追加してください。 MySQLホスト名の127.0.0.1を含め、Workbenchの他のすべてのデフォルトは問題ありません。もちろん、SSH経由の標準TCP/IPでなければなりません。
私も同じ問題に直面しました。 AllowTcpForwarding Yesを確認して設定しようとしましたが、sshd_configに見つからなかったため、役に立ちませんでした。 sshホスト名が[〜#〜] not [〜#〜]とmysqlホスト名と同じであることを確認してください(使用localhost)。
ワークベンチで+を選択して新しい接続を追加し、以下を設定します。
接続をテストします。成功したらOK.Violaを押してください!
同じエラーが発生しました。私の場合:
私はこの問題を後に解決しました:
削除する mysql-workbench-community
(以前にmysqlのWebサイトからインストール):
Sudo aptはmysql-workbench-community -yを削除します
インストールmysql-workbench
Sudo apt install mysql-workbench -y
新しい接続を追加
走る
SELECT user,Host FROM mysql.user;
また、Workbenchを介してログインしようとしているユーザーが、ホスト列に%
ではなくlocalhost
と言っていることを確認してください。
%
と表示されている場合は、次のように修正します。
UPDATE mysql.user SET Host="localhost" WHERE user="yourusername";
(このユーザーがSSHまたはWorkbenchを介してWorkbenchを操作するように作成したと仮定します。上記により、そのユーザーはリモートTCP経由でログインできなくなります)
わかりました、これは古い質問であることはわかっていますが、何時間も髪の毛を抜いてしまいました。私はブルーノとアイが述べたすべてをチェックしました、そしてそれはすべて良さそうでした。それから私はそれが本当に秘密/公開の鍵であることに気づきました。そこで、私はPageantを起動して秘密鍵を追加し、MySQL Workbenchが読み取って接続できる公開鍵を作成しました。 (MySQL Workbenchが実際に動作し始めたとき、それは実際には一種のクライマックスでしたが、幸せな方法で。)
TLDR:Pageantを使用して、秘密鍵から公開鍵を生成します。
MySQLバージョン5.5.29およびMySQL Workbench 5.2.40を実行しているサーバーに接続しているUbuntuマシンで同じ問題が発生しました。 SSHサーバーでは、ssh-keyを使用する必要があります。
Rootユーザーを使用してMySQLサーバーに接続できませんでした。代わりに、ログインに使用する別の非rootユーザーを作成する必要がありました。その後、うまく接続できました。
お役に立てれば。