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

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

ソフトウェアエコシステムは、分散システムの概念にとって新しいものではありません。リモートでホストされているソフトウェアとやり取りするために、物理的に存在している必要はありません。

したがって、 MySQL その機能機能を十分に活用するために、ローカルマシンに常駐する必要はありません。これで、MySQLをリモートの専用サーバーで実行しても、ローカル/デスクトップマシンで実行されているMySQLの場合と同じデータベースセキュリティとパフォーマンスが保証されます。

この記事ガイドでは、 MySQLへのリモートアクセスの設定と有効化について説明します。 Linuxのサーバー。 MySQLをホストしているリモートサーバー/マシン上 データベースソフトウェアの場合、認証されたリモートユーザーがアクセスできるようにするには、いくつかの構成手順を実行する必要があります。

新しいMySQLユーザーを作成する

ルートMySQLでもないリモートユーザーと連携することをお勧めします ユーザーは、 MySQLをホストしているリモートサーバーに関連付けられていません データベースソフトウェア。

リモートのMySQLにアクセスします SSHを介したサーバーとデータベース 。

$ ssh [email protected]
$ mysql -u root -p

新しいMySQLユーザーを作成するには、コマンド構文に従います。

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';

お気づきのとおり、‘username’ @’%’という表記を使用しています。 「username」@「localhost」ではありません このユーザーは、 MySQLにアクセスするのに十分な動的である必要があるためです。 異なるIPアドレスを持つ他のホストマシンからのサーバー。

mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password1122';

このユーザーにいくつかのデータベース権限を付与しましょう。たとえば、このユーザーは、rootユーザーがホストマシンにバインドされている場合にのみ、rootユーザーと同じデータベース権限を持つことができます。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

[あなたも好きかもしれません:phpMyAdminを介して新しいMySQLユーザーを作成する方法]

リモートMySQLアクセスを有効にする

リモートユーザーが作成されたので、次はいくつかの追加の構成変更を実行します。デフォルトでは、MySQLバインドアドレスは 127.0.0.1 これは、ローカルホストユーザーのみがMySQLデータベースと対話できることを意味します。

データベースサーバーへの他のユーザーのIPアドレスへのアクセスを許可するには、ファイルMySQL構成ファイルに移動して開きます。

 
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
OR
$ sudo vi /etc/my.cnf

MySQLデータベースサーバーへのリモートアクセスを許可するには、フィールド bind-address およびmysqlx-bind-address コメントアウトする必要があります。これらの構成変更により、MySQLデータベースソフトウェアをホストしているサーバーがローカルホスト(127.0.0.1)接続のみに依存することがなくなります。その後、すべてのIPアドレスがアクセスできるようになります。

ファイルを保存して閉じます。

MySQLサーバーを再起動してから、MySQLサーバーのIPアドレスを特定します。

$ sudo systemctl restart mysql
$ ifconfig

リモートMySQLデータベースアクセスの試行

MySQLに直接接続するには データベースサーバーをリモートで、次のMySQL構文に準拠します。

$ mysql -u username -h mysql_server_ip_adress -p

この場合、コマンドは次のようになります。

$ mysql -u remote_user -h 192.168.50.130 -p

スクリーンキャプチャに示されているように上記のエラーが発生した場合は、ネイティブパスワードを使用するようにMySQLユーザーを構成する必要があります。 SSH経由でMySQLサーバーにサインインし、次のコマンドを実装します。

mysql> ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password1122'; 
mysql> exit;

その後、MySQLデータベースシェルを終了し、MySQLデーモンを再起動します。

$ sudo systemctl restart mysql

MySQLサーバーへのリモートアクセスを再試行します。

$ mysql -u remote_user -h 192.168.50.130 -p

そして、まさにそのように、選択したIPアドレスに構成されたリモートクライアントコンピューターからMySQLデータベースサーバーに直接およびリモートでアクセスできます。

ファイアウォールでリモートMySQLアクセスを有効にする

リモートサーバーでファイアウォールを有効にしている場合は、MySQLのデフォルトポート 3306へのアクセスを許可する必要がある場合があります remote_ip_addressへのアクセスを許可します 示されているように。

UFWファイアウォール

$ sudo ufw allow from remote_ip_address to any port 3306

FirewallD

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

Iptables

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

それで全部です!この記事では、LinuxでのリモートMySQLアクセスの一般的なアイデアについて役立つ洞察を学びました。


Linux
  1. CentOS8にMySQL8データベースサーバーをインストールする方法

  2. CentOSにMySQLデータベースサーバーをインストールする方法

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

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

  2. Linuxサーバー上の特定のユーザーアカウントへのリモートログインを許可または拒否する方法

  3. MySQL スレーブ データベースの構成方法

  1. LinuxでMySQLルートユーザーパスワードをリセットする方法

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

  3. cPanelでMySQLデータベースにユーザーを割り当てる方法