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


33

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

'mytestuser' @ '%'

開いているポートファインダーによると問題のサーバーのポート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  -

回答:


76

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

bind-address 127.0.0.1を削除し/etc/mysql/my.cnfて問題を解決しました。

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


2
これは私のために働いた。正しいファイル名は/etc/mysql/my.cnfであることに注意してください/etc/mysql/my.conf
ラリーバトル

サーバーの外部IPアドレスと一致するようにバインドアドレスを変更しましたが、それはうまくいきました。
バトルビュートス14

行を完全に削除すると、サーバーはすべてのインターフェイスをリッスンします
-s1mmel

あなたは私の一日を救い、数週間この問題を解決しようとしていました、ありがとう!
budiantoip

9

ポートが閉じられていると確信している場合(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コントロールパネルもチェックして、ポートをブロックできるオプションがあるかどうかを確認します。

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

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


ねえ、私は別のポートで試してみましたが、まだ動作していません、「iptables -A INPUT -i eth0 -p tcp -m tcp --dport PORT -j ACCEPT」も試してみましたが、運はありません:( .. edit im not o eth0 ..まだ希望があるかもしれない
アンディ

@Andy回答を更新して、いくつかの提案を追加しました。
ルイスアルバラード

ルイス、私はこれを検討する提案をありがとう。
アンディ

netstat -tupleの結果を質問に更新しました。ここに問題があるようです。
アンディ


6

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

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

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


sudo ufw allow 3306/tcp編集しようとしましたが、私を許可しませんでした
アダム

1

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


1
私はこれを見る前に3時間ほどそれを理解しようとしていました、ありがとう!
オリバーNi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.