MySQL:すべてのホストを許可する
MySQLサーバーにリモートからアクセスしたい場合は、リモートホストからのアクセスを許可するために、1つ以上のユーザーを設定する必要があります。接続するホストのすべてのIPアドレスがわからない場合は、すべてのホストからの接続を単純に許可することができます。
このチュートリアルでは、すべてのホストからLinuxシステム上のMySQLサーバーへのリモート接続を許可する手順を段階的に説明します。これらの指示は、使用しているLinuxディストリビューションに関係なく機能するはずです。
このチュートリアルでは、あなたは学びます:
- すべてのホストからMySQLアカウントへのリモート接続を許可する方法
- システムファイアウォールを通じてMySQLへのリモート接続を許可する方法
MySQL: すべてのホストを許可する手順
MySQLデータベースへのリモート接続を許可することは、3つのステップで行います。
最初に、MySQLの設定ファイルに公開バインドアドレスを設定することによって、リモートマシンからアクセスできるようにMySQLサービスを設定する必要があります。このプロセスのための別のガイドがありますので、こちらを参照してください: MySQL: リモート接続を許可する。
次に、システムファイアウォールを通じてリモートアクセスを許可する必要があります。デフォルトでは、MySQLはポート3306で実行されているため、このポートへの接続を許可する必要があります。
第三に、すべてのリモートホストからアクセスできるようにするために、新しいユーザーを作成するか、既存のユーザーを編集する必要があります。
ファイアウォールを通じてリモートアクセスを許可する
MySQLサーバーにポート3306を使用していると仮定すると、システムのファイアウォールでこれを許可する必要があります。実行する必要のあるコマンドは、使用しているディストリビューションによって異なります。以下のリストを参照するか、必要に応じてコマンドを適応させて、自分のシステムのファイアウォール構文に従ってください。
Ubuntuシステムおよびufw(単純なファイアウォール)を使用している他のシステムでは:
sudo ufw allow mysql
Red Hat、CentOS、Fedora、およびfirewalldを使用する派生システムでは:
sudo firewall-cmd --zone=public --add-service=mysql --permanent
sudo firewall-cmd --reload
そして、どのシステムでも動作するはずの古き良きiptablesコマンド:
sudo iptables -A INPUT -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
特定のユーザーにリモート接続を許可する
MySQLサービスが受信接続を受け入れられるようになり、ファイアウォールもそれを許可するので、リモート接続を受け入れるようにユーザーを設定する必要があります。
まず、rootアカウントでMySQLを開いてください。
sudo mysqlあるいは、一部の設定では次のコマンドを入力し、ルートパスワードを提供する必要があります。
mysql -u root -pすでにユーザーが作成されていて、そのユーザーをすべてのホストからアクセス可能にする必要がある場合、MySQLの
RENAME USERコマンドを使用できます。以下の例コマンドでワイルドカード%を使用してlinuxconfigユーザーをすべてのホストからアクセス可能にしますが、これは必要に応じて自分の設定に合わせて調整してください。mysql> RENAME USER 'linuxconfig'@'localhost' TO 'linuxconfig'@'%'; mysql> flush privileges;また、新しいユーザーを初めて作成する場合は、
CREATE USERコマンドを使用します。以下のユーザー名とパスワードを自分のものに置き換えることを忘れないでください。再度、すべてのリモートホストを表すワイルドカードとして%を使用します。mysql> CREATE USER 'linuxconfig'@'%' IDENTIFIED BY 'password_here'; mysql> flush privileges;
それが全てです。ユーザーに1つまたは複数のデータベースへのアクセス権を付与した後、アカウントの認証情報を使用して、すべてのホストからデータベースにリモートでアクセスできるようになります。
締めくくりの考え
このチュートリアルでは、Linuxシステム上のMySQLサービスに対してすべてのホストからのリモート接続を許可する方法を見ました。これは、サービスをアクセス可能にし、ファイアウォールを通じて接続を許可し、アクセス可能なMySQLアカウントを作成するという3つのステップからなるプロセスでした。MySQLはすべてのディストリビューションで基本的に同じように動作するため、これらの手順は誰にでも利用可能です。
