web-dev-qa-db-ja.com

動的IPからのMySQLリモートアクセスを許可する方法

答えを探してみましたが、見つかりません。

ローカルのMySQL Workbenchを介してMySQLインスタンスにリモートアクセスする必要があります。ポートがオンになっている(私は信じています)。 Telnetで接続できます。

私が目にするすべての例は、

GRANT ALL PRIVILEGES ON *.* TO USER-NAME@IP IDENTIFIED BY "PASSWORD";

これの問題は、動的IPからリモートで実行していることです。私が得るエラーは

ユーザー 'root'@'c-67-166-150-41.hsd1.ca.comcast.net'のアクセスが拒否されました(パスワードを使用:YES)

それを許可するように設定するにはどうすればよいですか?リモートコントロールを行う場合、リモートマシンのMySQL Workbenchにrootアクセスできます。

ありがとう

3
Tom Collins

ホスト部分には「%」を使用するようにしてください。何かのようなもの:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

MySQLドキュメント から取得)

変更が適切に有効になることを確認します。

flush privileges
8
Kai Bojens

システムにアクセスするために何らかのトンネルを使用する方がはるかによいでしょう。 PuTTY/SSHはこの機能を非常にうまく提供します。

10
Zoredache

MySQLをlocalhost以外に公開することはお勧めしません。ただし、SSHトンネリングを処理するクライアントを使用している場合は、リモートでアクセスできます。どのMySQL Workbenchが機能しないようです。

SSHトンネリングの利点は、MySQLを公開しないことでサーバーを安全に保つことができることです。必要に応じてSSHトンネリングを手動で設定できますが、多くのDBクライアントにはこの機能が組み込まれています。

Macでは、 Sequel Pro は非常にうまく機能します。

SSH経由の接続を選択するオプションが表示されます。その構成に入ったら、次のように入力します。

  • Name:[希望する接続の名前]
  • MySQLホスト:127.0.0.1 [これはマシンのローカルホストです]
  • ユーザー名:[dbユーザー名]
  • Password:[db password]
  • データベース:[データベース名、またはアクセス権のあるすべてを表示するには空白]
  • ポート:3306 [標準のMySQLポート]

ここにSSH関連のものがあります。 SSHセッションに入るときに入力するのと同じ情報は100%です。

  • SSHホスト:[サーバーのホスト名またはIPアドレス]
  • SSHユーザー:[SSHユーザー名]
  • SSHパスワード:[SSHパスワード]
  • SSHポート:[設定は空白のままにするのが標準です]

MySQLへの純粋なIPアドレスベースのログインが必要な場合は、サーバーを開いてリモートクライアントにアクセスする必要がありますが、フロントエンドにファイアウォールを設定して、IPごとにMySQLへのアクセスを制限する必要があります。 。

5
JakeGould