web-dev-qa-db-ja.com

Ubuntuサーバーでポート3306が閉じているように見える

2つの VPS サーバーがあり、両方とも MySQL がインストールされています。1つはテスト用、もう1つは開発用です。サーバーの1つで、外部から接続できません。ユーザーとともに;

'mytestuser' @ '%'

開いているポートFinder によると、問題のサーバーのポート3306は閉じているようです。 C++およびJavaプログラムを任意のポートで問題なくリッスンしています。なぜこれが起こっているのですか、どうすれば修正できますか?

インストールされているUbuntuはUbuntu 11.10(GNU/Linux 2.6.32-042stab072.10 x86_64)

各サーバーでのnetstat -Tupleの結果

問題のあるサーバー

tcp        0      0 localhost.lo:submission *:*                     LISTEN      root       39967664    -

稼働中のサーバー

tcp        0      0 *:mysql                 *:*                     LISTEN      mysql      1847519288  -
33
Andy

問題は、サーバーが内部でのみリッスンしていることでした。

bind-address 127.0.0.1から/etc/mysql/my.cnf行を削除すると、問題が解決しました。

Ubuntuの新しいバージョン(≥16.04)では、/etc/mysql/mysql.conf.d/mysqld.cnfにこの行がある場合があります。

74
Andy

ポートが閉じられていることが確実な場合(VPSがそのポートを閉じるのはおかしいと思う)、MySQLの構成ファイルを変更して別のものを使用することをお勧めします。

ターミナルで構成ファイルSudo nano /etc/mysql/mysql.confを開き、[mysqld]セクションを探します。その中で、port = 3306という行を探します。使用されていない別のポートに変更し、ファイルを保存します。

次に、VPSを再起動するか、Sudo service mysql restartなどのサービスを再起動します。

ファイルmysql.confが上記のファイルにない場合、この他の場所にあることに注意してください。

/etc/my.conf
/etc/my.cnf
/etc/mysql/my.conf

serviceコマンドが機能しない場合は、次を実行します。

Sudo /etc/init.d/mysql restart

問題が解決しない場合は、私の場合、 iptables (オプションである可能性がある場合は、新しく起動するためにiptablesのすべてを実際に削除します)またはその他のファイアウォール対応オプションをチェックします。

VPSなので、VPSコントロールパネルもチェックして、ポートをブロックできるオプションがあるかどうかを確認します。

それとは別に、VPSでnmapを実行して、開いているポートを確認します。 VPSの外部から実行して、開いているポートを確認する必要があります。

netstat -tuplenは、サーバー上で開いているポートとリッスンモードになっているポートを確認することもお勧めします。

8
Luis Alvarado

私はこの方法を使用します:

Sudo ufw status
Sudo ufw allow XXXX/tcp
# use a port other than the default/predictable 3306
# work outside, and close the door when you are done
Sudo ufw deny XXXX/tcp

他の構成ファイルを変更する必要はなく、デフォルトで追加のポートを開く必要もありません。

5
ftcosta

bind-address 127.0.0.1bind-address 0.0.0.0/etc/mysql/mysql.conf.dに変更することでこれを修正しました(MySQLがすべてのポートでリッスンするように)。

また、リモートで使用するmysqlユーザーアカウントを設定します( https://stackoverflow.com/a/24171107/132374 を参照)。

5
Jon Onstott

設定がディレクトリ/etc/mysql/mysql.conf.d/mysqld.cnfにある場合があります。そうでない場合は確認してください。

1
winter