*シリーズの一部:link:/ community / tutorial_series / how-to-troubleshoot-issues-in-mysql [MySQLの問題のトラブルシューティング方法] *

このガイドは、MySQLセットアップを診断する際のトラブルシューティングリソースおよび開始点として役立つことを目的としています。 多くのMySQLユーザーが遭遇する問題のいくつかを調べ、特定の問題のトラブルシューティングのガイダンスを提供します。 また、特定の場合に役立つ可能性のあるDigitalOceanチュートリアルおよび公式のMySQLドキュメントへのリンクも含めます。

多くのWebサイトとアプリケーションは、同じマシンでホストされているWebサーバーとデータベースバックエンドから開始します。 ただし、時間が経つにつれて、このようなセットアップは面倒でスケーリングが困難になる可能性があります。 一般的な解決策は、リモートデータベースをセットアップしてこれらの機能を分離し、サーバーとデータベースを自分のマシンで自分のペースで成長させることです。

リモートMySQLデータベースをセットアップしようとするときにユーザーが遭遇するより一般的な問題の1つは、MySQLインスタンスがローカル接続のみをリッスンするように構成されていることです。 これはMySQLのデフォルト設定ですが、MySQLはサーバーにアクセスできる_external_ IPアドレスをリッスンできる必要があるため、リモートデータベースのセットアップでは機能しません。 これを有効にするには、 `+ mysql.conf`ファイルを開きます:

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

`+ bind-address +`ディレクティブで始まる行に移動します。 これは次のようになります。

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

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            = 127.0.0.1
. . .
デフォルトでは、この値は「127.0.0.1」に設定されています。これは、サーバーがローカル接続のみを検索することを意味します。 このディレクティブを変更して、外部IPアドレスを参照する必要があります。 トラブルシューティングの目的で、このディレクティブをワイルドカードIPアドレス、「+ * 」、「

」、または「+0.0.0.0」に設定できます。

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

. . .
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address            =
. . .

この行を変更した後、ファイルを保存して閉じ、MySQLサービスを再起動します。

sudo systemctl restart mysql

これに続いて、別のマシンからデータベースにリモートでアクセスしてみてください。

mysql -u  -h  -p

データベースにアクセスできる場合は、設定ファイルの `+ bind-address `ディレクティブが問題であることを確認します。 ただし、「 bind-address 」を「+0.0.0.0」に設定すると、任意のIPアドレスからサーバーに接続できるため、安全ではないことに注意してください。 一方、まだデータベースにリモートでアクセスできない場合は、他の何かが問題を引き起こしている可能性があります。 どちらの場合でも、https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-のガイドに従うと役立つ場合があります。 with-mysql-on-ubuntu-18-04 [Ubuntu 18.04でMySQLを使用してサイトパフォーマンスを最適化するためにリモートデータベースをセットアップする方法]を使用して、より安全なリモートデータベース構成をセットアップします。