【簡単解決】Linux/UbuntuでMySQLのポート番号を確認する方法とは?

2024-06-18

MySQL がどのポートで実行されているかを確認し、接続できるかどうかをテストする方法

このチュートリアルでは、Linux および Ubuntu システムで MySQL がどのポートで実行されているかを調べ、そのポートに接続できるかどうかを確認する方法を説明します。

前提条件

  • Linux または Ubuntu システムがインストールされている
  • MySQL サーバーがインストールおよび実行されている
  • mysql コマンドラインクライアントへのアクセス権

方法

使用中のポートを確認する

以下のコマンドを使用して、MySQL が使用しているポートを確認できます。

netstat -tnlp | grep mysql

このコマンドは、ネットワーク接続に関する情報を表示し、grep コマンドを使用して MySQL プロセスに関連する行だけを抽出します。出力結果には、MySQL プロセスが使用しているポート番号が表示されます。

デフォルトのポート番号は 3306 ですが、インストール時に変更されている可能性があります。

接続テストを行う

特定のポートで MySQL サーバーが実行されていることを確認したら、そのポートに接続できるかどうかをテストできます。

以下のコマンドを使用して、ポート番号を指定して MySQL サーバーに接続します。

mysql -u username -p -h localhost -P 3306
  • -u username:MySQL ユーザー名を置き換えます。
  • -p:パスワード入力を求めます。
  • -h localhost:接続先のホスト名を指定します。デフォルトは localhost です。
  • -P 3306:接続先のポート番号を指定します。

パスワードを入力すると、成功すれば MySQL コマンドプロンプトが表示されます。

エラーメッセージのトラブルシューティング

接続テストでエラーが発生した場合は、以下の点を確認してください。

  • ユーザー名とパスワードが正しいことを確認してください。
  • MySQL サーバーが実行されていることを確認してください。
  • ファイアウォールが MySQL サーバーへの接続をブロックしていないことを確認してください。
  • 正しいポート番号を使用していることを確認してください。

補足

  • nmap コマンドを使用して、特定のポートが開いているかどうかを確認することもできます。
nmap localhost 3306
  • telnet コマンドを使用して、特定のポートに手動で接続することもできます。
telnet localhost 3306



    netstat -tnlp | grep mysql
    

    接続テストを行う

    mysql -u username -p -h localhost -P 3306
    

    説明

    使用中のポートを確認する

    Active Internet connections (only showing established, i.e. not in a SYN-ACK state)
    tcp6       0      0 :::3306 :::*               LISTEN      127.0.0.1:3306           :::*
    

    この例では、MySQL サーバーは 3306 ポートで実行されています。

    Enter password:
    Welcome to the MySQL monitor.
    
    Commands terminated with ; will execute.
    Type 'help' or '\?' for assistance.
    
    MySQL>
    
    • 上記のコードは、デフォルトのユーザー名とパスワード、およびデフォルトのホスト名を使用して接続しています。必要に応じてこれらの値を変更してください。
    • -P オプションは、ポート番号を指定するために使用されます。
    • -p オプションは、パスワード入力を求めるようにします。



    MySQL がどのポートで実行されているかを確認し、接続できるかどうかをテストする方法(その他の方法)

    mysqladmin コマンドを使用して、MySQL サーバーのステータス情報を取得できます。この情報には、使用されているポート番号が含まれます。

    mysqladmin status
    

    出力結果には、Port: という行が表示され、その後に使用されているポート番号が表示されます。

    ...
    Port:                   3306
    ...
    

    /etc/mysql/my.cnf ファイルには、MySQL サーバーの構成オプションが記載されています。このファイルには、port オプションを使用してポート番号を指定することもできます。

    port=3306
    

    このファイルが存在しない場合は、デフォルトのポート 3306 が使用されます。

    show variables ステートメントを使用する

    MySQL コマンドプロンプト内で show variables ステートメントを使用して、ポート番号を含む MySQL サーバーの変数を確認できます。

    mysql -u username -p
    mysql> SHOW VARIABLES WHERE Variable_name LIKE 'port';
    
    +-----------------+---------+
    | Variable_name     | Value   |
    +-----------------+---------+
    | port             | 3306   |
    +-----------------+---------+
    

      上記の方法に加えて、ポートスキャナーを使用して、開いているポートをスキャンすることもできます。ただし、この方法は、ファイアウォールによってブロックされているポートを検出できない可能性があることに注意してください。


      mysql linux ubuntu


      MySQLのWHERE句でconcat()関数を使う方法

      MySQLの concat() 関数は、複数の文字列を結合するために使用できます。WHERE句で concat() 関数を使用すると、複数の列の値に基づいて行を検索できます。例次の例では、users テーブルの first_name 列と last_name 列の値を結合して、full_name という仮想列を作成します。その後、full_name 列が "John Doe" と一致する行を検索します。...


      【保存版】MySQLでユーザーとプロフィールテーブルを紐づける!1対1リレーションシップの3つの方法

      データベース設計において、エンティティ間の関係を定義することは重要です。エンティティ間の最も基本的な関係の1つが、1対1リレーションシップです。これは、あるエンティティのインスタンスが別のエンティティのインスタンスと厳密に1対1で関連付けられていることを意味します。...


      MySQL の CONCAT 関数:NULL 値の罠を回避して完璧な結合を実現

      MySQL の CONCAT() 関数は、複数の文字列を結合するために使用されます。しかし、引数のうち一つでも NULL 値である場合、CONCAT() 関数は NULL を返します。これは、多くの場合予期せぬ結果をもたらす可能性があります。...


      【秘伝公開】大規模データセットの結合クエリをMySQL/MariaDBで爆速化!1500万行超も難なく処理

      インデックスの活用結合クエリのパフォーマンスを向上させるためには、適切なインデックスを作成することが不可欠です。結合条件となる列にインデックスを作成することで、データベースが効率的にデータを探すことができるようになります。例:テーブル結合の種類...


      JSON_TABLE関数でJSONオブジェクトを仮想的なテーブルに変換

      MySQL 5.7以降およびMariaDB 10. 2以降では、JSONデータ型を直接保存できます。このデータ型は、NoSQLデータベースのような柔軟なデータ構造を、従来のRDBMSであるMySQL/MariaDBで扱えるようにします。本記事では、MySQL/MariaDBのJSON列に対してSELECTクエリを実行する方法を解説します。...