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
ここで何が間違っていますか?
MySQLサービスは、ローカルホストのみにサービスを提供するようにバインドされています(インターフェイスバインディング)。これはセキュリティ上の理由からデフォルトです。他のホストから直接アクセスする必要がある場合は、Nice buntuでMySQLへのリモートアクセスを有効にする方法 があります。
/etc/mysql/my.cnf
または/etc/mysql/mysql.conf.d/mysqld.cnf
をお気に入りのエディターで開きます。異なるシステムでは 見つかった が異なります。[mysqld]
セクションを探し、bind-address
キーワードを探します。これは通常127.0.0.1
に設定されます-「通常の」IPアドレスに一致するように変更しますservice mysql restart
を使用)適切なGRANTを設定して、リモートユーザーがリモートから自分のデータベースにアクセスできるようにする必要があることを忘れないでください。
GRANT ALL ON mydb.* TO remoteuser@'%' IDENTIFIED BY 'SomePASSWORD';
「任意のホストから」を意味する@'%'
に注意してください。