sql >> データベース >  >> RDS >> Mysql

共有サーバーにあるMySQLデータベースにリモート接続する方法

    セキュリティ上の理由により、共有ホスティングサーバーではリモートMySQL接続が無効になっています。ただし、SSHクライアントを使用して、コンピュータとサーバーの間にSSHトンネルを簡単に設定できます。 MySQLポート3306転送を使用します。

    これを行うと、ローカルマシンにポート3522があり、ポート3306でリモートサーバーのローカルホストをリッスンして転送します。これで、リモートに効果的に接続できます。ローカルボックスで実行されているかのようにサーバーのMySQLデータベース。

    PostgreSQLに接続しようとしている場合 データベースの場合、ポート5432を使用します 3306の代わりに。

    以下に、サードパーティのSSHクライアントを構成する方法の手順を示します(PuTTY) MacOSとLinuxのビルトインワン(ターミナル)

    :アカウントでSSHアクセスが有効になっていることを確認してください。このガイドに従って、設定を確認してください。

    プロセスで必要となる詳細のリストは次のとおりです。

    SSH接続の詳細
    • サーバーのホスト名:server168.web-hosting.com
    • ポート:21098
    • cPanelのユーザー名:tunneltest
    • cPanelパスワード:cpanel_password


    サーバーのホスト名はアカウントによって異なります。ホスティングプランのウェルカムメールで確認できます。

    cPanelのユーザー名とパスワードは、cPanelアカウントへのログインに使用するものです。

    ポートは次のようになります。すべての共有ホスティングサーバーで同じです。

    サーバー側のMySQLの詳細
    • サーバーのホスト名:127.0.0.1
    • ポート:3306
    • データベース名:tunneltest_db
    • データベースユーザー:tunneltest_user
    • データベースパスワード:db_user_password


    サーバーのホスト名とポートは、すべての共有ホスティングサーバーで同じになります。

    データベース名、ユーザー、およびパスワードは、データベースの作成時に指定したものです。 MySQLデータベースメニュー。このメニューに慣れていない場合は、この記事を確認してください。

    トンネルの詳細
    • ローカルIP:127.0.0.1
    • ローカルポート:5522
    • リモートIP:127.0.0.1
    • リモートポート:3306


    ローカルIPアドレスとポートは、好みに応じて変更される場合があります。

    一部のお客様は、3306ポートでローカルMySQLサーバーを実行しているため、5522を使用してみましょう。この例では、ポートを使用して、ローカルポートがどのサービスでも使用されないようにします。

    リモートIPアドレスとポートは、サーバーのホスト名とサーバー側のMySQLの詳細> 変更できません。

    クライアント側のMySQLの詳細
    • サーバーのホスト名:127.0.0.1
    • ポート:5522
    • データベース名:tunneltest_db
    • データベースユーザー:tunneltest_user
    • データベースパスワード:bCsLHA5xs8AQ


    これらは、データベースにリモートで接続しようとしているアプリまたはWebサイトの最後で使用するアクセスの詳細です。サーバーのホスト名とポートは、のローカルIPとポートと一致する必要があります。トンネルの詳細

    データベース名、ユーザー、およびパスワードは、サーバー側のMySQLの詳細の対応する値と一致する必要があります 。



    PuTTYと接続する
    ターミナルと接続する(LinuxおよびMacOSの場合)



    PuTTYと接続する

    1。アプリケーションを実行します。
    2。 接続に移動します 'データのタブ 'セクションで、自動ログインユーザー名を確認してください フィールドは空で(cPanelのユーザー名を入力することもできます)、'プロンプト 'オプションがチェックされています:



    3。 接続に移動します>> SSH >>トンネル セクションを作成し、トンネルの詳細に記載されている値を入力します 次のようになります。
    送信元ポート=ローカルポート
    宛先=RemoteIP:RemotePort

    'ローカルであることを確認してください 'モードがチェックされ、追加をクリックします :



    これを実行すると、フィールドにトンネルが表示されます。上:



    4。 セッションに移動します タブをクリックし、SSH接続の詳細からサーバーのホスト名とポートを使用してホスト名とポートを入力します 。次に、このプリセットの名前を選択し、[保存されたセッション]フィールドに入力します。 保存をクリックします この構成を保存します。



    5。次に、開くをクリックします サーバーへの接続を確立します。

    :セッション設定はすでに保存されているので、次にSSHトンネルを開くときに手順1〜4をスキップできます。

    リストから保存したプリセットを選択し、[ロード]をクリックします。 および開く 使用するには。

    6。初めてサーバーに接続すると、セキュリティアラートが表示されます。 同意するをクリックします 続行します。



    7。これで、SSH接続の詳細にあるcPanelのユーザー名とパスワードを入力するよう求められます。 。

    :パスワードを入力しても、端末に記号は表示されません。これは、パスワードを安全に保つためのターミナルの方法です。

    パスワードが受け入れられると、サーバープロンプトが表示されます。これでSSHトンネルが確立され、ポート5522を介したローカルホストへのすべての接続がホスティングアカウントに転送されます。



    :SSHトンネルは、このウィンドウがアクティブである限り機能します。データベースの操作が完了するまで、このウィンドウを閉じないでください。

    これで、クライアント側のMySQLの詳細を使用して共有ホスティングサーバー上のデータベースに接続できます。 MySQLクライアントで。例:






    ターミナルに接続する(LinuxおよびMacOSの場合) )


    1。アプリケーションを実行し、次のコマンドを入力します。

    ssh -f [email protected] -p21098 -L 5522:127.0.0.1:3306 -N

    [email protected]」は、SSH接続の詳細を使用して入力されます :
    [cpanel account] @ [server hostname] -p [port]

    "-L 5522:127.0.0.1:3306"は、トンネルの詳細を使用して入力されます :
    [ローカルポート]:[リモートIP]:[リモートポート]

    この場合、ローカルIPアドレスは指定されておらず、デフォルトは127.0.0.1です。

    2。 Enterキーを押して、cPanelパスワードを指定します(パスワードを入力しても、ターミナルに記号は表示されません。これは、ターミナルがパスワードを安全に保つための方法です)。

    これに初めて接続する場合サーバーの場合、次のプロンプトが表示されます。接続を続行してもよろしいですか(はい/いいえ)? yesと入力します Enterキーを押して続行します。

    3。これを行うと、ポート5522を介したローカルホストへのすべての接続がホスティングアカウントに転送されます。これで、クライアント側のMySQLの詳細を使用して、共有ホスティングサーバー上のデータベースに接続できます。 MySQLクライアントで。

    コマンドラインMySQLクライアントを使用した例を次に示します。

    mysql -h 127.0.0.1 -P 5522 tunneltest_db -p -u tunneltest_user

    最終結果は次のようになります:





    以上です!
    1. Androidでカーソルを正しく閉じる方法

    2. PostgreSQL11の新しいパーティショニング機能を利用する方法

    3. 最適化のしきい値–データのグループ化と集約、パート2

    4. Entity Frameworkを使用して、読み取り時にテーブルをロックするにはどうすればよいですか?