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


14

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

私が試みたとき:- nmap localhost 、それは次を示しています

ポートステートサービス
22 / tcp open ssh
80 / tcpオープンhttp
139 / tcp open netbios-ssn
445 / tcp open microsoft-ds
631 / tcpオープンipp
3306 / tcp open mysql

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

ポートステートサービス
22 / tcp open ssh
80 / tcpオープンhttp
139 / tcp open netbios-ssn
445 / tcp open microsoft-ds

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

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

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

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

回答:


22

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

  1. 異なるシステムで異なることがわかっているため、ルートとして、/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';

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


読んでくれてうれしいです-どういたしまして!
イジー

リンクが壊れています:(
dino

2
@dinoもはや。私はそれを修正し、抜粋も含めたので、もしそれが死んだとしても、必要な手順はまだここにあります。私の悪い点は、最初からそうしなかったのですが、タイムスタンプからわかるように、それは私の初期の答えの1つでした。私たちは皆学ぶ:)
イジー

2
/etc/mysql/mysql.conf.d/mysqld.cnf私のシステムではbind-addressフィールドが下にありました。
エリックG

@EricGポインターをありがとう。私の答えは5年前だったので、設定は少し変更されました(そしておそらくよりモジュール化されました)。
イジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.