ウェブサイト検索

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


このガイドでは、CentOS 7 および Debian ベースの Linux ディストリビューションで MySQL/MariaDB データベースがバインドするデフォルト ポートを変更する方法を学びます。 Linux および Unix で MySQL データベース サーバーが実行されているデフォルトのポートは 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] 

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

[mysqld] 
port = 12345

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

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 ポートを表示することもできます。ただし、ローカルホスト上の MySQL へのすべての接続は、TCP ソケット経由ではなく、MySQL UNIX ドメイン ソケット経由で行われることに注意してください。ただし、コマンドラインで MySQL データベースにリモート接続する場合は、-P フラグを使用して TCP ポート番号を明示的に指定する必要があります。

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

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

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 ポートへの受信接続を許可するようにディストリビューション ファイアウォール ルールを更新する必要があります。