接続の問題の解決

いずれかのホストへの接続で問題が発生した場合は、最初に他のホストに ping を送信して、そのホストに到達可能であることを確認します。 ファイアウォールと SELinux ルールを変更して、あるホストから別のホストへの接続を許可する必要がある場合があります(SELinux を使用する場合)。

リモート接続の作成

リモート接続を作成するには:

  1. データベースサーバーで、root 権限を持つユーザーとして、MySQL 設定ファイルを開きます。

    このディレクトリを探すには、次のコマンドを入力します。

    mysql --help
    

    場所は次のように表示されます。

    Default options are read from the following files in the given order:
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
    
    NOTE
    Ubuntu 16 では通常、パスは /etc/mysql/mysql.conf.d/mysqld.cnf です。
  2. 設定ファイルで bind-address を検索します。

    存在する場合は、次のように値を変更します。

    存在しない場合は、[mysqld] セクションに追加します。

    bind-address = <ip address of your web node>
    

    特にクラスター化された web サーバーがある場合は、MySQL ドキュメントを参照してください。

  3. 設定ファイルに対する変更を保存し、テキストエディターを終了します。

  4. MySQL サービスを再起動します。

    • CentOS: service mysqld restart

    • Ubuntu: service mysql restart

    NOTE
    MySQL の起動に失敗した場合は、syslog で問題の原因を調べます。 MySQL ドキュメントまたはその他の信頼できるソースを使用して、問題を解決します。

データベースユーザーへのアクセス権の付与

Web ノードがデータベースサーバーに接続できるようにするには、web ノードのデータベースユーザーにリモートサーバー上のデータベースへのアクセス権を付与する必要があります。

この例では、root データベース・ユーザーにリモート・ホスト上のデータベースへのフル・アクセス権を付与します。

データベース・ユーザーにアクセス権を付与するには、次の手順に従います。

  1. データベースサーバーにログインします。

  2. root ユーザーとして MySQL データベースに接続します。

  3. 次のコマンドを入力します。

    GRANT ALL ON <local database name>.* TO <remote web node username>@<remote web node server ip address> IDENTIFIED BY '<database user password>';
    

    以下に例を挙げます。

    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    NOTE
    Web サーバーがクラスター化されている場合は、すべての web サーバーに同じコマンドを入力します。 すべての Web サーバーに同じユーザー名を使用する必要があります。