0

使用する開発のために、MySql Server を自分のマシンからサーバーに接続しようとしています。サーバーでは、MySql は正常に実行されていますが、リモートで接続できません。

「skip-networking」という行を削除して、my.cnf をチェックしました。サーバーでは、bin/mysqladmin 変数は次を返します。

 bin/mysqladmin version -u root -pPASSWORD
bin/mysqladmin  Ver 8.42 Distrib 5.5.27, for linux2.6 on x86_64
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.27-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 5 min 55 sec

Threads: 1  Questions: 1  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.002
  • サーバー: SUSE Linux
  • クライアント: Windows 7
  • MySql: 上記の情報によると。

何が起こっているでしょうか?ありがとう!

4

3 に答える 3

3

リモートデータベースに接続するために必要なものは 3 つあります。

  1. ファイアウォールでポート 3306 を開きます。サーバーとクライアントのファイアウォールは、ポート 3306 を開く必要があります。
  2. my.cnfbind-address = 0.0.0.0で、mysql がすべてのインターフェイスにバインドできるようにする
  3. リモート接続を許可するためのデータベース内の十分な権限

リモート マシンに telnet できない場合は、ルール 3 を忘れてください。

于 2012-09-10T19:31:54.683 に答える
2

MySQL クライアントを使用して接続できなかった場合は、接続しているユーザーがリモート接続を許可されていないことをお勧めします。これは、明示的に付与する必要がある権利です (ただし、私が読んだほとんどの最初のチュートリアルでは、任意のマシンからアクセスできるユーザーの作成が示されています... これはセキュリティ リスクへの扉を開きます)。

例:

MySQLのドキュメントに従って、次のようなことをした場合:

CREATE USER 'jeffrey'@'localhost';

ユーザーjeffreyは、localhost からのログオンのみが許可されます。

しかし、あなたは Telnet を使用して接続できないと述べている ので、「追伸: ファイアウォールではない」という文に異議を唱えます。

複数のファイアウォールが通信パスに影響を与える可能性があります。

  • Windows 7: 現在のネットワークがたまたまパブリック ネットワークとして定義されている場合、ほとんどのアウトバウンド ポートは既定でブロックされます。
  • サーバー ファイアウォール。サーバー自体で何を実行しているのかはわかりませんが、その接続を確認してください。
  • ISP / データセンターのファイアウォール。多くのサーバーは、データ センター レベルのファイアウォールの背後にあります。たとえば、AWS では、セキュリティ ポリシーを介してアクセスを許可する必要があります。Rackspace では、ツールを使用してファイアウォール ポートを開く必要があります。

関係する可能性のあるすべてのファイアウォールを理解していることを確認してください。

@JvdBergの提案も良いもので、すべてのインターフェースをリッスンしていることを確認してください

my.cnf bind=0.0.0.0 で、mysql がすべてにバインドできるようにします

于 2012-09-10T19:34:08.470 に答える
1

正直なところ、私は Telnet の経験があまりありません。ただし、Telnet は非常に安全でないため、ssh を使用するのが最善の策であることを付け加えておきます。基本的に、すべてのログイン情報はクリア テキストとして送信され、悪意のあるユーザーがネットワークを盗聴している場合は...

PuTTY などの Windows 上の ssh 用のオープン ソース プログラムがあります。

あなたの問題に答えて、

両方のマシンでポート 3306 を開く必要があります。データベースは、リモート接続を受け入れ/許可するように構成する必要があります。

于 2012-09-10T19:35:53.557 に答える