このガイドでは、 MySQL / MariaDBのデフォルトポートを変更する方法を学習します データベースはCentOS7でバインドされます およびDebian ベースのLinuxディストリビューション。 MySQLデータベースサーバーがLinuxおよびUnixで実行しているデフォルトのポートは3306/ TCP です 。
デフォルトのMySQL/ MariaDBを変更するには Linuxのデータベースポートで、以下のコマンドを発行して、編集用にMySQLサーバー構成ファイルを開きます。
# vi /etc/my.cnf.d/server.cnf [On CentOS/RHEL] # vi /etc/mysql/mariadb.conf.d/50-server.cnf [On Debian/Ubuntu]>
[mysqld]
で始まる行統計の検索 次のポートディレクティブを[mysqld]
の下に配置します 以下のファイルの抜粋に示すように、ステートメント。それに応じてポート変数を置き換えます。
[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コマンドを発行してください 新しいMySQLポートを簡単に識別できるように、grepコマンドで結果をフィルタリングします。
# ss -tlpn | grep mysql # netstat -tlpn | grep mysql
rootアカウントでMySQLデータベースにログインし、以下のコマンドを発行して、新しいMySQLポートを表示することもできます。ただし、ローカルホスト上のMySQLへのすべての接続は、TCPソケットではなく、MySQLunixドメインソケットを介して行われることに注意してください。ただし、-P
を使用してMySQLデータベースにコマンドラインでリモート接続する場合は、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ポートへの着信接続を許可するようにディストリビューションファイアウォールルールを更新する必要があります。