2011-02-07 21 views
2

ローカルに実行されているPHPから接続したいリモートデータベースがあります。データベースはリモート接続を許可しないので、通常はSSHでボックスに入れてコマンドラインから使用しますが、これは長期的な解決策ではありません。SSHを使用してPHPを使用してリモートMySQLデータベースに接続

私はSSHアクセスを持っていますが、私はSSHで一度MySQLにアクセスできますが、そのワークフローにPHPをどうやって入手するのか分かりません。もし私がMAMP内でこの仕事をすることができれば、それも素晴らしいでしょう。

+0

私はこれを理解しようと数時間を費やし、最終的にこれを行いました:http://stackoverflow.com/questions/464317/connect-to-a- mysql-server-over-ssh-in-php#comment65229024_16138417 – Ryan

答えて

0

あなたはSSHトンネルを設定して、トンネルを介して転送されるローカルポートにPHPの接続コードを指すことができます。 Windowsでは、パテを使うことができます。 Macの場合、同様のソリューションがあります。

0

これが開発のためのものであれば、アレックスによる提案された解決策があります。 sshトンネルを設定します。

トンネルは、127.0.0.1:3306-リクエストをリモートマシンにリダイレクトします。リモートマシンはまた、127.0.0.1(ローカル)からの要求になると考えています。

しかし、あなたのサーバ(共有ホストを指定してください)が127.0.0.1からのmysql接続を許可していないと、問題が発生することがあります。それらには小さな違いがあり、トンネルがリモートのmysqldに到達するのを妨げます。

ちょうどGoogleのトンネリングを設定し、PHP接続文字列から127.0.0.1を使用してください。開発やテストのために

に関して、

//トン

1

、あなたは最初のセットアップトンネルにsshコマンドを使用して、ローカルの一つとしてリモートデータベースにアクセスすることができます。手順は次のとおりです。

1)setup tunnel with sshコマンド。コマンド形式:ssh -L [ローカルポート]:127.0.0.1:[リモートmysqlポート、デフォルトでは3306] [ユーザ] @ [リモートmysqlサーバのIP]。サンプル: のssh -L 3307:127.0.0.1:3306 [email protected]

2)

3生きているコマンドウィンドウを保つ)あなたはMySQLの文字列で、リモート・データベースにアクセスすることができます:mysqliの:// [ユーザー]:[パスワード] @ 127.0.0.1:3307/[データベース名]

関連する問題