ローカルマシンにMySQL Community Edition 5.5をインストールしたのですが、リモート接続を許可して外部から接続できるようにしたいのです。
どうすればよいですか?
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
上記のすべてを行った後も、リモートで「root」としてログインすることはできませんでしたが、ポート 3306
へのTelnettingは、「MySQL」が接続を受け入れていることを確認しました。
MySQLでユーザーを調べ始めたところ、パスワードが異なる複数のルートユーザーがいることに気づきました。
select user, host, password from mysql.user;
したがって、 MySQL
でrootのすべてのパスワードを設定を再度設定すると、最終的にリモートで root
としてログインできます。
use mysql;
update user set password=PASSWORD('NEWPASSWORD') where User='root';
flush privileges;
私の経験からのメモとして、このパス /etc/mysql/mysql.conf.d/mysqld.cnf
の下に構成ファイルを見つけることができます。
(私はこの道を見つけるためにしばらく苦労しました)。
私の場合、cent OS上でリモートのmysqlサーバーに接続しようとしていました。多くの解決策(すべての権限の付与、IPバインディングの削除、ネットワークの有効化)を行ったが、問題は解決しなかった。
結局、いろいろな解決策を調べているうちにiptablesに出会い、mysqlのポート3306が接続を受け付けないことに気づきました。
この問題をどのようにチェックし、解決したかを少し書いておく。
telnet (mysql server ip) [portNo]</pre>;
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPTiptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT</pre>;
iptablesが正しく設定されていない場合は、ルールを追加しても問題が解決しない可能性があります;
お役に立てれば幸いです。
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 **。
。。
mysqld
にbind addressがループバック/ローカルアドレスに設定されている場合(例:. 127.0.0.1
)、リモートホストからループバックインターフェイスに到達できないため、サーバーはリモートホストから到達できません。
このオプションを 0.0.0.0
( ::
IPv4 + 6の場合)に設定して、任意のホストからの接続を受け入れるか、1つのインターフェイスでのみ接続を許可する場合は、外部から到達可能な別のアドレスへの接続を受け入れます。
ソース。