web-dev-qa-db-ja.com

MySQLサーバーにリモートマシンからアクセスできない

MySQLサーバーをローカルのUbuntuサーバー(11.10)にインストールしました。リモートマシンからサーバーに接続できません。

私が試したとき:-nmap localhost、次のように表示されます

 PORT STATE SERVICE 
 22/tcp open ssh 
 80/tcp open http 
 139/tcp open netbios-ssn 
 445/tcp open Microsoft -ds 
 631/tcp open ipp 
 3306/tcp open mysql 

3306、MySQLポートが開いているということですよね?しかし、サーバーIPであるnmap 192.168.0.50を試してみると、次のようになります。

 PORT STATE SERVICE 
 22/tcp open ssh 
 80/tcp open http 
 139/tcp open netbios-ssn 
 445/tcp open Microsoft -ds 

これは、IPを使用してアクセスするときにポートが開いていないということですか?もしそうなら、どのようにポートを開きますか?

次のコードを試しましたが、うまくいかなかったようです。

Sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

ここで何が間違っていますか?

14
Sparky

MySQLサービスは、ローカルホストのみにサービスを提供するようにバインドされています(インターフェイスバインディング)。これはセキュリティ上の理由からデフォルトです。他のホストから直接アクセスする必要がある場合は、Nice buntuでMySQLへのリモートアクセスを有効にする方法 があります。

  1. rootとして、/etc/mysql/my.cnfまたは/etc/mysql/mysql.conf.d/mysqld.cnfをお気に入りのエディターで開きます。異なるシステムでは 見つかった が異なります。
  2. [mysqld]セクションを探し、bind-addressキーワードを探します。これは通常127.0.0.1に設定されます-「通常の」IPアドレスに一致するように変更します
  3. ファイルを保存し、サービスをリロードします(例:service mysql restartを使用)

適切なGRANTを設定して、リモートユーザーがリモートから自分のデータベースにアクセスできるようにする必要があることを忘れないでください。

GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';

「任意のホストから」を意味する@'%'に注意してください。

22
Izzy