データベースにはそれぞれ「Port(ポート)」と呼ばれる扉のようなものがあります。
ネットでも「ポートを開放する」や「ポート番号」などといったワードを聞いたことがある方も多いと思います。
今回はMySQLのポートについて解説してみたいと思いますので、実はよくわかっていないという方もこの記事を見てしっかりと理解しましょう。
Port(ポート)とは
先ほども簡単に解説しましたが、ポートとはPCとネットワーク環境を繋ぐ扉と思って問題ありません。
ネットワーク環境を有しているものはたくさんあり、ネットワーク機器もこれらに属します。
もちろんサーバーやインターネットも然りです。
これらを使用する際にポートが開かれていないと、いくらネット通信が可能であっても目的地まで通信が届くことはありません。
また、このポートにはデフォルトで数値が割り振られており固定化しています。
例えばインターネットには「80」というポートが、FTPには「20」と「21」のポートが使用されています。
もちろん変更はできますが、あくまでも初期段階ではある程度決まったポート番号が割り振られていることを覚えておいてください。
MySQLとポート番号
ネット通信にはすべてポート番号が割り振られていると説明しましたが、MySQLにもデフォルトで割り振られているポートがあります。
通常MySQLには「3306」ポートが使用されています。
まずはこの番号が本当に使われているかを確認する方法について説明します。
このポートを調べるためにはコマンドラインを使います。
コマンドラインとはプロンプトのような俗にいう「黒画面」を指します。
コマンドラインで以下のコマンドを実行してみましょう。
MariaDB [(none)]> status
このコマンドを打ち込むことで以下のようなステータスが表示されるはずです。
-------------- mysql Ver 15.1 Distrib 10.4.10-MariaDB, for Win64 (AMD64), source revision c24ec3cece6d8bf70dac7519b6fd397c464f7a82 Connection id: 8 Current database: Current user: root@localhost SSL: Not in use Using delimiter: ; Server: MariaDB Server version: 10.4.10-MariaDB mariadb.org binary distribution Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: cp932 Conn. characterset: cp932 TCP port: 3306 Uptime: 47 sec Threads: 7 Questions: 5 Slow queries: 0 Opens: 16 Flush tables: 1 Open tables: 10 Queries per second avg: 0.106 --------------
この中に表示されている”TCP port”を見ると「3306」番のポートが使用されていることが確認できます。
ポート番号を変更する
次はMySQLを利用する際にポート番号を変更して利用する方法について解説します。
開発環境によっては若干の差異はありますが、概ねどの環境でも一緒だと思いますので、今回はMariaDBを使って説明をしていきます。
まずポートを変更するにはデータベースファイルの「My.ini」の内容を変更します。
恐らく通常であればCドライブ直下にMySQLフォルダがあると思います。
そのフォルダの中に「My.ini」というファイルがあるはずですので、そのファイルを開きます。
すると非常に長いテキストが開かれると思います。
そのテキストの中から以下のような部分を探して下さい(データベースのバージョンなどにより若干異なる場合があります)。
# The following options will be passed to all MySQL clients
[client]
# password = your_password
port=3306
socket=”C:/mysql/mysql.sock”
# Here follows entries for some specific programs
# The MySQL server
default-character-set=utf8
[mysqld]
port=3306
socket=”C:/mysql/mysql.sock”
basedir=”C:/mysql”
tmpdir=”C:/tmp”
datadir=”C:/mysql/data”
pid_file=”mysql.pid”
# enable-named-pipe
key_buffer=16M
max_allowed_packet=1M
sort_buffer_size=512K
net_buffer_length=8K
read_buffer_size=256K
read_rnd_buffer_size=512K
myisam_sort_buffer_size=8M
log_error=”mysql_error.log”
# Change here for bind listening
# bind-address=”127.0.0.1″
# bind-address = ::1 # for ipv6
# Where do all the plugins live
plugin_dir=”C:/mysql/lib/plugin/”
まずこの中の”port”と書かれている部分(2か所)を使用したいポートに変更してください。
ただし、予め使用されているポートと競合しないようにして下さい。
競合してしまうとネット通信が開始されずエラーが返ってきますので注意しましょう。
変更し終わったら、保存してファイルを閉じます。
次にコマンドラインで以下のコマンドを実行してください。
mysql -u root -h 127.0.0.1 -P 先ほど設定したポート番号
なお、学習のためにLocalhost接続をしている方はIPアドレスを入力しないとエラーになる場合がありますので、ここではIPアドレスで表示しています。
また、ポート番号は基本的には自動で判断されますが、明示的に指定しないとエラーが返ってくる場合がありますので、学習のためにも自分で指定するようにしてください。
データベースに接続できたら以下のコマンドでステータスを確認してみてください。
MariaDB [(none)]> status -------------- mysql Ver 15.1 Distrib 10.4.10-MariaDB, for Win64 (AMD64), source revision c24ec3cece6d8bf70dac7519b6fd397c464f7a82 Connection id: 8 Current database: Current user: root@localhost SSL: Not in use Using delimiter: ; Server: MariaDB Server version: 10.4.10-MariaDB mariadb.org binary distribution Protocol version: 10 Connection: localhost via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: cp932 Conn. characterset: cp932 TCP port: 3308 Uptime: 13 min 13 sec Threads: 7 Questions: 4 Slow queries: 0 Opens: 16 Flush tables: 1 Open tables: 10 Queries per second avg: 0.005 --------------
“TCP port”が指定したポートに変更されていることが確認できました。
まとめ
いかがでしたか?
今回はポートの説明と確認、そして変更方法について解説してみました。
通常は余り変更することはないと思いますが、万が一ポートが使用されている場合などはエラーに時間を取られてしまいます。
変更方法を覚えておけばそのようなエラーにも簡単に対処することができますので、この記事を読んでポートの変更方法を覚えてみてください。