ウェブサイト検索

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サービスが受信接続を受け入れられるようになり、ファイアウォールもそれを許可するので、リモート接続を受け入れるようにユーザーを設定する必要があります。

  1. まず、rootアカウントでMySQLを開いてください。

    
    sudo mysql
    

    あるいは、一部の設定では次のコマンドを入力し、ルートパスワードを提供する必要があります。

    
    mysql -u root -p
    
  2. すでにユーザーが作成されていて、そのユーザーをすべてのホストからアクセス可能にする必要がある場合、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はすべてのディストリビューションで基本的に同じように動作するため、これらの手順は誰にでも利用可能です。

関連記事: