2011-07-08 15 views
1

私はコンピュータAにあり、mysqlを実行しており、A~ $ mysql -u punkish -p databaseというように接続することができます。標準以外のポートを介したssh経由のmysql

コンピュータBにもアクセスできます。コンピュータBにもmysqlが実行されています。しかし、私はすべての私のコンピュータ上でSSH経由でポートフォワーディングを設定したい私は、セットアップのssh鍵のペアでポート2200を介してBにsshをすることができ、一度で、私はそう

A~ $ ssh -p 2200 [email protected] 
B~ $ mysql -u punkish -p database 

などのDBに接続することができます私のコンピュータAのポート3307のmysqlに対する要求は、実際にはBのポート3306に送られます。これにより、mysqlに接続するGUIプログラムを使用できますが、トンネルでは実行できません。だから、私は私が右のBに上記ログ

A~ $ ssh -p 2200 -L 3307:B:3306 [email protected] 
B~ $ 

次の手順に従ってください私はトンネルが確立されているかどうかわからないのですが、私はそれがあると仮定しています。しかし、次は失敗した(別の端末にここ

A~ $ mysql -P 3307 -u punkish -p 
Enter password: 
ERROR 1045 (28000): Access denied for user 'punkish'@'localhost' (using password: YES) 

は興味深いことである - 私は続編プロ(Mac OS X用のデスクトップのMySQLクライアント)と呼ばれる別のGUIのプログラムを持って、それは接続をすることができますssh上でmysql @ Bを実行するだけで問題ありません。どういう仕組みがあるのか​​分かりません。他のGUIプログラムでも有効にできるかもしれません。

+0

おそらくこれはスーパーユーザー(http://superuser.com/)に適していますか? – Eddie

答えて

1

mysqlは通常ソケットを使用しようとしますあなたがmysqlコマンドの一部として指定した場合、-h 127.0.0.1を指定してください(localhostとは違って、扱い方が異なります)。これは基本的にソケットファイル接続の代わりにTCP接続を強制します。

+0

ok。私は実際にそれを試して失敗しましたが、とにかくもう一度試しました。 'A〜$ mysql -P 3307 -p 127.0.0.1 -u punkish パスワードを入力してください: ERROR 2013(HY000): '最初の通信パケットを読み込み中です。エラー:0' – punkish

+0

いいえ。私はあなたのトンネル設定について何も知らないので、これは私が提供できる最高のものです。 'nmap -Pn -p3307 localhost'を実行して、ポートが実際に正しくリスンしていることを確認してください。 –

+0

私はMac OS Xで、私が知る限り、そこには 'nmap'はありません。 – punkish

関連する問題