はじめに
従来の展開では、多くの場合、MySQLサーバーをインストールして、同じホストから使用します。ただし、MySQLサーバーとクライアントを分離することを強くお勧めします。MySQLサーバーにはリモートホストからアクセスする必要があります。この方法は、システムの安全性を高め、パフォーマンスを向上させるのに役立ちます。
上記の方法を可能にするには、クライアントからのリモート接続を許可するようにMySQLサーバーを構成する必要があります。
MySQLサーバーを構成する
まず、サーバー上の事前定義されたIPまたはすべてのIPアドレスをリッスンするようにMySQLサーバーを構成しましょう。
MySQLサーバーがクライアントと同じネットワークにある場合は、プライベートIPでリッスンポートを構成する必要があります。
一方、パブリックネットワークを介してMySQLサーバーに接続する必要がある場合は、以下の構成に従ってサーバーを構成しましょう。
構成ファイルを開きます:
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-addressで始まる行に移動します
デフォルトでは、bind-addressの値は127.0.0.1
です。
すべてのIPアドレスをリッスンするようにMySQLサーバーを設定する場合は、bind-address =0.0.0.0
の値を構成します。変更を有効にするには、MySQLサービスを再起動しましょう:
$ sudo systemctl restart mysql
リモートホストからのユーザーへのアクセスを許可する
このパートでは、リモートユーザーにデータベースへのアクセスを許可する方法を紹介します。
MySQLサーバーにログインします:
$ sudo mysql
次に、
mysql> GRANT ALL ON DATABASE-NAME.* TO [email protected] IDENTIFIED BY ‘USER-PASSWORD’;
例:
mysql> GRANT ALL ON linuxways.* TO [email protected] IDENTIFIED BY ‘mysecuredpass’;
ファイアウォールの構成
MySQLサーバーはポート3306でリッスンします。リモートホストからのトラフィックを許可するには、このポートを開く必要があります。以下のいずれかの方法を使用できます:
iptables
$ sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
ufw
ufwを使用してポート3306を開く場合は、次のコマンドを実行するだけです。
$ sudo ufw allow 3306/tcp
結論
MySQLサーバーへのリモート接続を許可する方法の詳細についてはすでに説明しました。
ご不明な点がございましたら、お気軽にお問い合わせください。読んでいただきありがとうございます。