[解決済み] このsshトンネルを閉じるには?[閉じる]
質問
この記事にあるように、sshトンネルを開きました。 Zend_Db: SSHトンネル経由でMySQLデータベースに接続する方法は?
しかし、今、私は実際に何をしたのかわかりません。このコマンドはサーバー上で何か影響を与えますか? そして、このトンネルをどのように閉じればよいのでしょうか?なぜなら、今、私はローカルのmysqlを正しく使うことができないからです。
私は OSX Lion を使用しており、サーバーは Ubuntu 11.10 で動作しています。
どのように解決するのですか?
このコマンドを実行したと仮定します。
ssh -f [email protected] -L 3306:mysql-server.com:3306 -N
を、リンク先の投稿にあるように実行しました。
コマンドの内訳です。
-
ssh
: かなり自明です。呼び出されるssh
. -
-f
: (以下よりman ssh
のページ)コマンドを実行する直前にバックグラウンドに移行するよう ssh に要求します。 これは、ssh がパスワードやパスフレーズを要求する場合に便利です。 パスワードやパスフレーズを要求されるが、ユーザはバックグラウンドで実行させたい場合に有効です。
基本的には
ssh
をバックグラウンドに送ることで、接続を確立するためにパスワードを入力すると、シェルプロンプトをlocalhost
にログインするのではなくremote-host
. -
[email protected]
: ログインしたいリモートサーバーを指定します。 -
-L 3306:mysql-server.com:3306
: ここが面白いところです。-L
(から)。man ssh
のページ)。[bind_address:]ポート:ホスト:ホストポート ローカル (クライアント) ホスト上の与えられたポートを、リモート側の与えられたホストとポートに転送することを指定します。 リモート側の指定されたホストとポートに転送することを指定します。
では
-L 3306:mysql-server.com:3306
は ローカル ポート3306
から リモートポート3306
ホスト上mysql-server.com
.に接続すると ローカル ポート
3306
に転送され、接続はセキュアなチャネルを介してmysql-server.com
. このとき リモートホスト ,mysql-server.com
に接続しmysql-server.com
ポートに3306
. -
-N
: コマンドを実行しない。これは、"just forwarding ports" (manページの引用)に便利です。
このコマンドはサーバー上で何か影響を与えますか?
はい、このコマンドは ローカルホスト と mysql-server.com ポート上で 3306 .
このトンネルを閉じるには...
もし、あなたが
-f
を使ったことがあるなら、その
ssh
プロセスはバックグラウンドに向かいます。これを閉じるには、よりよい方法として
ps aux | grep 3306
を実行し
pid
の
ssh -f ... -L 3306:mysql-server.com:3306 -N
であり、かつ
kill <pid>
. (あるいは
kill -9 <pid>
であったかは忘れました。
kill
が動作するかは忘れました)。これには、以下のような美しい利点があります。
ではなく
を殺すことで、他のすべての
ssh
複数の接続がある場合、それらを再確立するのは少し......苦痛です。
... なぜなら、今私はローカルの MySQL を適切に使用することができないからです。
これは、あなたが効果的に "capture" を行ったからです。
ローカル
mysql
プロセスに接続しようとするトラフィックは、すべて
リモート
mysql
のプロセスで使用されます。A
より良い
という解決策になります。
ローカルポート 3306 を使用しない
をポートフォワードで使用しない。33060のような、使われていないものを使ってください。(高い番号は一般にあまり使われません。quot;2525->25" "8080->80" "33060->3306" のような組み合わせをポートフォワードすることがかなり一般的になっています。覚えるのが少し楽になります)。
ということは、もしあなたが
ssh -f [email protected] -L 33060:mysql-server.com:3306 -N
を使用した場合、Zend の connect-to-mysql 関数に対して
localhost
ポートに
33060
に接続します。
mysql-server.com
に接続します。
3306
. への接続はまだ可能です。
localhost
への接続は可能です。
3306
を使用するため、ローカルの
mysql
サーバを使用することができます。
関連
-
MySQLで正規表現を使う 詳細
-
Djangoマイグレーションエラー 外部キー制約を追加できない
-
Mysqlの使用中に発生したエラーの一部
-
[解決済み] ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセス拒否 - 特権がない?
-
[解決済み] ssh "パーミッションが開きすぎています "エラー
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] 新しい鍵を作成せずに、SSH鍵のパスフレーズを削除するにはどうすればよいですか?
-
[解決済み] エラー 1698 (28000)。ユーザー 'root'@'localhost' のアクセスが拒否されました。
-
[解決済み] ERROR 2002 (HY000): ソケット '/tmp/mysql.sock' を介してローカルの MySQL サーバーに接続できません。
-
[解決済み] 公衆無線LAN経由のGithub(SSH)、ポート22はブロックされています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLのデータバックアップにmysqldumpを使用する方法
-
ジョイントインデックスのためのmysqlの条件とインデックスが失敗するための条件
-
面接では選択式で聞かれましたが......。.for updateはテーブルをロックするか、行をロックするか?
-
MySQL XAが分散型トランザクションを実装する方法を1記事にまとめました。
-
[解決済み】DynamoDB : 提供されたキー要素がスキーマと一致しません。
-
[解決済み] ユニークなテーブル/エイリアスではない
-
sql エラーを解決する オペランドには1つの列が含まれている必要があります。
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] Ubuntu linux上で動作するリモートMySQLサーバーを再起動する方法は?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?