GNU/Linux >> Linux の 問題 >  >> Ubuntu

MySQLへのリモート接続を許可する方法

はじめに

同じローカルマシンでデータベースとWebサーバーをホストすることは珍しくありません。ただし、現在、多くの組織がより分散した環境に移行しています。

別のデータベースサーバーを使用すると、セキュリティとハードウェアパフォーマンスが向上し、リソースを迅速に拡張できます。このようなユースケースでは、リモートリソースを効果的に管理する方法を学ぶことが優先事項です。

このチュートリアルでは、MySQLデータベースへのリモート接続を有効にする方法を示します。

前提条件

  • ターミナルウィンドウ/コマンドラインへのアクセス
  • リモートMySQLサーバー
  • 須藤 またはルート ローカルマシンとリモートマシンの特権

MySQLServerリモート接続

リモートMySQLサーバーへの接続を許可することは、次の3つのステップで設定されます。

  1. MySQL構成ファイルを編集する
  2. ファイアウォールを構成する
  3. リモートMySQLサーバーに接続します

ステップ1:MySQL構成ファイルを編集する

1.1mysqld.cnfファイルにアクセスする

好みのテキストエディタを使用して、 mysqld.cnfを開きます。 ファイル。この例では、Ubuntu18.04のnanoテキストエディターを使用しています。コマンドラインインターフェイスに次のコマンドを入力して、MySQLサーバー構成ファイルにアクセスします。

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

ファイルの場所は、使用しているディストリビューションとバージョンによって異なる場合があります。 MySQL構成ファイルがデフォルトの場所でない場合は、Linux findを使用してみてください それを検出するコマンド。

1.2バインドアドレスIPの変更

これで、MySQLサーバー構成ファイルにアクセスできます。 bind-addressまで下にスクロールします 回線を接続し、IPアドレスを変更します。現在のデフォルトIPは127.0.0.1に設定されています。このIPは、ローカルマシンへのMySQL接続を制限します。

新しいIPは、MySQLサーバーにリモートでアクセスする必要があるマシンのアドレスと一致する必要があります。たとえば、MySQLを0.0.0.0にバインドすると、MySQLサーバーに到達するすべてのマシンもそれに接続できます。

必要な変更を加えたら、構成ファイルを保存して終了します。

1.3MySQLサービスを再起動します

MySQLサービスを再起動して、MySQL構成ファイルに加えた変更を適用します。

sudo systemctl restart mysql

次に、デフォルトのMySQLポートへのトラフィックを許可するように、現在のファイアウォール設定を調整する必要があります。

ステップ2:リモートMySQL接続を許可するようにファイアウォールを設定する

構成ファイルを編集しているときに、デフォルトのMySQLポートが 3306であることに気付いたと思います。 。

MySQLサーバーにファイアウォールをすでに構成している場合は、この特定のポートのトラフィックを開く必要があります。使用中のファイアウォールサービスに対応する以下の手順に従ってください。

オプション1:UFW(Uncomplicated Firewall)

UFWはUbuntuのデフォルトのファイアウォールツールです。ターミナルウィンドウで、次のコマンドを入力してトラフィックを許可し、IPとポートを一致させます。

sudo ufw allow from remote_ip_address to any port 3306

ルールが正常に更新されたことをシステムが確認します。

オプション2:FirewallD

CentOSのfirewalld管理ツールはゾーンを使用します 許可するトラフィックを指示します。

新しいゾーンを作成して、MySQLサーバートラフィックのルールを設定します。この例のゾーンの名前はmysqlruleです。 、前の例のIPアドレスを使用しました 133.155.44.103

sudo firewall-cmd --new-zone=mysqlrule --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlrule --add-source=133.155.44.103
sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp
sudo firewall-cmd --reload

ファイアウォールでポート3306を正常に開きました。

オプション3:iptablesでポート3306を開く

iptables ユーティリティは、デフォルトでほとんどのLinuxディストリビューションで使用できます。次のコマンドを入力して、MySQLポート3306を無制限のトラフィックに開放します。

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

特定のIPアドレスへのアクセスを制限するには、代わりに次のコマンドを使用します。

sudo iptables -A INPUT -p tcp -s 133.155.44.103 --dport 3306 -j ACCEPT

このコマンドは、133.155.44.103へのアクセスを許可します。リモート接続用のIPに置き換える必要があります。

iptablesルールに加えた変更を保存する必要があります。 Ubuntuベースのディストリビューションでは、次のコマンドを入力します。

sudo netfilter-persistent save
sudo netfilter-persistent reload

次のコマンドを入力して、CentOSに新しいiptablesルールを保存します。

service iptables save

ステップ3:リモートMySQLサーバーに接続する

これで、リモートサーバーは接続を受け入れる準備ができました。次のコマンドを使用して、リモートMySQLサーバーとの接続を確立します。

mysql -u username -h mysql_server_ip -p

-u username コマンド内はMySQLユーザー名を表します。 -h mysql_server_ip MySQLサーバーのIPまたはホスト名です。 -p オプションを選択すると、MySQLユーザー名のパスワードを入力するように求められます。

以下のような出力が表示されます。

Connection to mysql_server_ip 3306 port [tcp/mysql] succeeded!

新しいMySQLデータベースへのリモートアクセスを許可する方法

データベースがまだない場合は、MySQLシェルで次のコマンドを入力することでデータベースを簡単に作成できます。

CREATE DATABASE ‘yourDB’;

特定のデータベースへのリモートユーザーアクセスを許可するには:

GRANT ALL PRIVILEGES ON yourDB.* TO [email protected]’133.155.44.103’ IDENTIFIED BY ‘password1’;

データベースの名前、ユーザー名、リモートIP、およびパスワードは、リモート接続に使用する情報と一致している必要があります。

既存のMySQLデータベースへのリモートアクセスを許可する方法

既存のデータベースのユーザーにリモートアクセスを許可するには、次の2つのコマンドのセットが必要です。

update db set Host=’133.155.44.103' where Db='yourDB';
update user set Host=’133.155.44.103' where user='user1';

User1 yourDBにアクセスできるようになりました IPによって識別されるリモートロケーションから133.155.44.103


Ubuntu
  1. MySQLサーバーをDebian9にインストールする方法

  2. Ubuntu16.04にMySQLサーバーをインストールする方法

  3. Ubuntu17.04にMySQLサーバーをインストールする方法

  1. ルートMySqlパスワードをリセットする方法

  2. MySQL 8.0/5.7をDebian11/Debian10にインストールする方法

  3. LinuxMint19にMySQLをインストールする方法

  1. CentOS7にMySQLサーバーをインストールする方法

  2. Ubuntu16.04にMySQLをインストールする方法

  3. MySQLデータベースサーバーへのリモート接続を許可する方法