LinuxでデフォルトのMySQL / MariaDBポートを変更する方法


このガイドでは、 MySQL/MariaDB データベースが CentOS 7 および Debian ベースのLinuxディストリビューションでバインドするデフォルトポートを変更する方法を学習します。 MySQLデータベースサーバーがLinuxおよびUnixで稼働しているデフォルトのポートは 3306/TCP です。

Linuxのデフォルトの MySQL/MariaDB データベースポートを変更するには、下記のコマンドを発行してMySQLサーバー設定ファイルを編集用に開きます。

# vi /etc/my.cnf.d/server.cnf                   [On CentOS/RHEL]
# vi /etc/mysql/mariadb.conf.d/50-server.cnf    [On Debian/Ubuntu] 

行statの検索は [mysqld] で始まり、以下のファイルの抜粋に示すように、 [mysqld] ステートメントの下に次のportディレクティブを配置します。それに応じてポート変数を置き換えます。

[mysqld] 
port = 12345

新しい MySQL/MariaDB ポートを追加したら、設定ファイルを保存して閉じ、次のパッケージを CentOS 7 にインストールして必要な SELinuxを適用しますデータベースが新しいポートにバインドできるようにするための規則。

# yum install policycoreutils-python

次に、下記の SELinux ルールを追加してMySQLソケットを新しいポートにバインドし、データベースデーモンを再起動して変更を適用します。次のコマンドを発行します。繰り返しますが、MySQLのポート変数を自分のポート番号と一致するように置き換えます。

--------------- On CentOS/RHEL --------------- 
# semanage port -a -t mysqld_port_t -p tcp 12345
# systemctl restart mariadb

--------------- On Debian/Ubuntu ---------------
# systemctl restart mysql      [On Debian/Ubuntu]  

MySQL/MariaDB データベースサーバーのポート設定が正しく適用されたかどうかを確認するには、netstatまたは ssコマンドを発行し、grepコマンドで結果をフィルタリングして簡単に識別します。新しいMySQLポート

# ss -tlpn | grep mysql
# netstat -tlpn | grep mysql

rootアカウントでMySQLデータベースにログインして以下のコマンドを発行して、新しいMySQLポートを表示することもできます。ただし、localhost上のMySQLへのすべての接続はTCPソケット経由ではなく、MySQL unixドメインソケット経由で行われることに注意してください。しかし、TCPポート番号はMySQLデータベースへのコマンドラインリモート接続の場合には -P フラグを使って明示的に指定されなければなりません。

# mysql -h localhost -u root -p -P 12345
MariaDB [(none)]> show variables like 'port';

MySQLデータベースへのリモート接続の場合は、MySQLコンソールで以下のコマンドを発行して、rootユーザーがすべてのネットワークまたはIPアドレスからの着信接続を許可するように明示的に設定する必要があります。

# mysql -u root -p
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.159' identified by 'strongpass';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit

下記のコマンドを発行して、新しいポートでコマンドラインクライアントを介してMySQLサーバーにリモートログインします。

# mysql -h 192.168.1.159 -P 12345 -u root -p  

最後に、 MySQL/MariaDB データベースサーバーのポートを変更したら、リモートクライアントがデータベースに正常に接続できるように、新しいTCPポートへの着信接続を許可するようにディストリビューションのファイアウォールルールを更新する必要があります。