MySQLのデフォルトポート番号は「3306」!基本情報とセキュリティ上の注意点を解説
MySQLがデフォルトで使用するポート番号は3306です。本記事では、3306番ポートの基本的な役割から、公開時のセキュリティリスク、そして安全に運用するための対策までをわかりやすく解説します。
3306番ポートとは?
3306番ポートは、MySQLプロトコルがクライアントや「mysqldump」などのユーティリティと接続する際に使用するポートです。通信方式はTCP(Transmission Control Protocol:伝送制御プロトコル)を採用しており、信頼性の高いデータ転送を実現しています。
なお、3306はあくまで「デフォルト」のポート番号であり、設定変更によって別のポート番号でMySQLを運用することも可能です。
3306番ポートのセキュリティリスク
デフォルトポートを使用する場合、いくつか注意すべき脆弱性・リスクが存在します。ここからは、3306番ポートを扱う際の主なリスクと対策を見ていきましょう。
ポート3306は原則として公開しない
一般的に、ポート3306をインターネットに公開状態のまま開放しておくと、サーバーが攻撃を受ける危険性が高まります。不正アクセスやブルートフォース攻撃の標的になりやすいため、安易に開放するのは避けるべきです。
リモート接続にはSSHトンネルを活用する
リモートからデータベースに接続したい場合は、ポート3306を直接開放するのではなく、より安全な方法を選びましょう。代表的な手段のひとつがSSHトンネルです。SSH経由で暗号化された通信路を確保することで、ポートを公開せずに安全なリモート接続が可能になります。
開放する場合はアクセス元IPを制限する
どうしてもポート3306を開放する必要がある場合は、アクセスを許可するIPアドレスを厳密に制限することが重要です。信頼できないホストからの接続を遮断することで、不正アクセスのリスクを大幅に低減できます。ファイアウォールやセキュリティグループの設定を活用し、最小限の接続元のみを許可しましょう。
実際に使用されているポート番号を確認する方法
MySQLのデフォルトポートは3306ですが、環境によっては別のポートが使用されている場合もあります。現在のポート番号を確認したいときは、以下のSQLクエリを実行するだけで簡単にチェックできます。
SHOW VARIABLES WHERE Variable_name = 'port';
このクエリを実行すると、MySQLサービスが現在使用しているポート番号が表示されます。運用前の設定確認やトラブルシューティングの際にぜひ活用してください。
まとめ
MySQLのデフォルトポート番号は3306で、TCP通信によってクライアントとの接続を担っています。ただし、このポートをむやみに公開するとセキュリティリスクが高まるため、SSHトンネルの利用やIPアドレス制限などの対策を講じることが大切です。デフォルト設定を鵜呑みにせず、自分の環境で実際に使用されているポートを確認した上で、適切なセキュリティ運用を心がけましょう。
-
JavaでMySQL接続を確立する方法とは?localhostのポート番号をわかりやすく解説
JavaからMySQLデータベースに接続するには、JDBC URLに正しいポート番号を指定する必要があります。MySQLのデフォルトポート番号は3306であり、URLは以下の形式で記述します。jdbc:mysql://localhost:3306ポート番号3306について3306は、MySQLサーバーが標準で使用するポート番号です。ローカル環境(localhost)で稼働しているMySQLに接続する場合も、このポート番号を明示的に指定します。なお、設定ファイル(my.cnf や my.ini)でポート番号を変更している場合は、実際の値に合わせてください。サンプルコードimport java.s
-
MySQLでデータベース内のテーブル数を表示するクエリの書き方
INFORMATION_SCHEMA.TABLESを使ってテーブル数を取得するここでは例として、「WEB」というデータベースを使用しているものとします。このデータベース内に存在するテーブルの総数を調べたい場合、MySQLではINFORMATION_SCHEMA.TABLESを利用するのが便利です。INFORMATION_SCHEMAは、MySQLサーバーが管理しているメタデータ(データベース名、テーブル名、カラム情報など)を格納する仮想データベースであり、これを参照することでスキーマに関する情報をSQLで簡単に取得できます。テーブル数を表示するクエリ「WEB」データベース内のテーブル数を表示す