412

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

どうやってやるの?

4

17 に答える 17

854

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

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

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

次に、次の行を見つけてファイル内でコメントアウトしますmy.cnf。これは通常、/etc/mysql/my.cnfUnix/OSX システムに存在します。場合によっては、ファイルの場所は /etc/mysql/mysql.conf.d/mysqld.cnf です)。

Windows システムの場合は、MySQL インストール ディレクトリで見つけることができます。通常C:\Program Files\MySQL\MySQL Server 5.5\ 、ファイル名はmy.ini.

行を変更

 bind-address = 127.0.0.1

 #bind-address = 127.0.0.1

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

于 2013-02-08T18:43:25.487 に答える
56

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

MySQL のユーザーを調べ始めたところ、異なるパスワードを持つ複数の root ユーザーが存在することに気付きました。

select user, host, password from mysql.user;

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

use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
于 2016-05-12T06:32:47.410 に答える
30

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

結局のところ、さまざまな解決策を調べているときに、iptables に出くわし、mysql ポート 3306 が接続を受け入れていないことに気付きました。

この問題をどのように確認して解決したかについての小さなメモを次に示します。

  • ポートが接続を受け入れているかどうかを確認しています:
telnet (mysql サーバーの IP) [ポート番号]
  • ポートでの接続を許可する IP テーブル ルールを追加します。
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • これは実稼働環境にはお勧めしませんが、iptables が適切に構成されていない場合、ルールを追加しても問題が解決しない可能性があります。その場合、次のことを行う必要があります。
サービス iptables 停止

お役に立てれば。

于 2015-09-22T10:03:46.293 に答える
7

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

localhost非ユーザーの特権も追加する必要があります。

于 2013-02-08T18:42:20.253 に答える
3

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

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

ソース

于 2018-05-24T20:00:21.790 に答える
3

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

于 2016-12-02T12:21:26.003 に答える