mysqlへのリモート接続を許可する方法

ローカルマシンにMySQL Community Edition 5.5をインストールしたのですが、リモート接続を許可して外部から接続できるようにしたいのです。

どうすればよいですか?

質問へのコメント (4)
ソリューション

MySQL ではデフォルトで許可されています。

デフォルトで無効になっているのはリモートの root アクセスである。 これを有効にするには、ローカルで次の SQL コマンドを実行する:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

そして、次の行を見つけ、my.cnfファイル(Unix/OSXシステムでは通常/etc/mysql/my.cnfにある)にコメントアウトしてください。このファイルの場所が/etc/mysql/mysql.conf.d/mysqld.cnfである場合もある)。

Windowsシステムであれば、MySQLのインストールディレクトリにあり、通常はC:◆Program FilesMySQL ◆MySQL Server 5.5のようになり、ファイル名はmy.iniになります。

行を変更する

 bind-address = 127.0.0.1

 #bind-address = 127.0.0.1

変更を有効にするために MySQL サーバ (Unix/OSX および Windows) を再起動します。

解説 (27)

上記のすべてを行った後も、リモートで「root」としてログインすることはできませんでしたが、ポート 3306へのTelnettingは、「MySQL」が接続を受け入れていることを確認しました。

MySQLでユーザーを調べ始めたところ、パスワードが異なる複数のルートユーザーがいることに気づきました。

select user, host, password from mysql.user;

したがって、 MySQLrootのすべてのパスワードを設定を再度設定すると、最終的にリモートで rootとしてログインできます。

use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
解説 (5)

私の経験からのメモとして、このパス /etc/mysql/mysql.conf.d/mysqld.cnfの下に構成ファイルを見つけることができます。

(私はこの道を見つけるためにしばらく苦労しました)。

解説 (2)

私の場合、cent OS上でリモートのmysqlサーバーに接続しようとしていました。多くの解決策(すべての権限の付与、IPバインディングの削除、ネットワークの有効化)を行ったが、問題は解決しなかった。

結局、いろいろな解決策を調べているうちにiptablesに出会い、mysqlのポート3306が接続を受け付けないことに気づきました。

この問題をどのようにチェックし、解決したかを少し書いておく。

  • ポートが接続を受け入れているかチェックする:

telnet (mysql server ip) [portNo]

解説 (0)

MySQLユーザーのワイルドカードリモートアクセスを設定するには、以下の手順に従ってください。

(1)cmdを開きます。 。 (2)パスC:\ Program Files \ MySQL \ MySQL Server 5.X \ binに移動します。 このコマンドを実行します。 。 mysql -u root -p 。 。 (3)ルートパスワードを入力します。 。 (4)許可を提供するために次のコマンドを実行します。 。 *すべての特権を付与します。\ 識別された「USERNAME」@「IP」へ。 'PASSWORD'; 。 。 USERNAME:MySQLサーバーに接続するユーザー名。 。 IP:MySQLへのアクセスを許可する場所からのパブリックIPアドレス。 サーバー。 。 パスワード:使用したユーザー名のパスワード。 。 IPは%に置き換えることができ、ユーザーは任意のIPから接続できます。 住所。 。 。 (5)次のコマンドでprevilegesをフラッシュし、終了します。 。 フラッシュ特権; 。 。 終了; 。 または \ q **。

。![ここに画像の説明を入力してください](https://i.stack.imgur.com/8bD4d.png。)

解説 (2)

MySQLを「brew」からインストールした場合、実際にはデフォルトではローカルインターフェイスでのみリッスンします。 これを修正するには、 /usr/local/etc/my.cnfを編集し、 bind-address127.0.0.1から*に変更する必要があります。

次に、「brew services restart mysql」を実行します。

解説 (2)

MySQL サーバプロセスが 127.0.0.1 または ::1 のみをリッスンしている場合、リモート接続できません。etc/my.cnfbind-address` を設定している場合、これが問題の原因である可能性があります。

また、localhost 以外のユーザーの権限も追加する必要がある。

解説 (2)

ただF.Y.I 私はこの問題で何時間も髪を引き出しました。. 最後にホスティングプロバイダーに電話したところ、私の場合はクラウドサーバーを使用しており、コントロールパネルに1and1のセカンダリファイアウォールがあり、クローンしてポート3306を追加する必要があります。 追加したら、すぐに入りました。.

解説 (2)

ファイアウォールサービスが実行されている場合は、ファイアウォールポート3306も開いていることを確認してください。

解説 (0)

このブログローカルエリアネットワークでMySQLサーバーをセットアップする方法は、「MySQL」をゼロからセットアップするのに役立ちます。

解説 (2)

また、OS Xのユーザーは、bind-addressパラメーターが通常、my.iniファイルではなくlaunchd plistに設定されていることに注意してください。 したがって、私の場合、 /Library/LaunchDaemons/homebrew.mxcl.mariadb.plistから < string> --bind-address = 127.0.0.1< / string>を削除しました。

解説 (1)

mysqldbind addressがループバック/ローカルアドレスに設定されている場合(例:. 127.0.0.1)、リモートホストからループバックインターフェイスに到達できないため、サーバーはリモートホストから到達できません。

このオプションを 0.0.0.0( :: IPv4 + 6の場合)に設定して、任意のホストからの接続を受け入れるか、1つのインターフェイスでのみ接続を許可する場合は、外部から到達可能な別のアドレスへの接続を受け入れます。

ソース

解説 (0)

Windowsで PCの名前を使用する必要がある場合があります。

最初のステップ) mysqlの構成ファイルに入れます:

mysqld.cnf SET bind-address = 0.0.0.0。

(tcp / ipを介して接続を再調整するため)。

2番目のステップ) mysql、テーブルユーザーでユーザーを作成します。 windowsのPCの名前プロパティ、 NOT ip を使用します。

。![ここに画像の説明を入力してください](https://i.stack.imgur.com/bXLab.png。)

解説 (0)