Configurar una conexión de base de datos remota

NOTA
Se trata de un tema avanzado que sólo debe utilizar un administrador de red o de base de datos experimentado. Debe tener acceso de root al sistema de archivos y poder iniciar sesión en MySQL como root.

Requisitos previos

Antes de empezar, debe:

Alta disponibilidad

Siga estas directrices para configurar conexiones a bases de datos remotas si el servidor web o de base de datos está en clúster:

  • Debe configurar una conexión para cada nodo de servidor web.

  • Normalmente, se configura una conexión de base de datos con el equilibrador de carga de base de datos; sin embargo, la agrupación en clúster de base de datos puede ser compleja y su configuración depende de usted. El Adobe no realiza recomendaciones específicas para la agrupación en clúster de bases de datos.

    Para obtener más información, consulte Documentación de MySQL.

Solución de problemas de conexión

Si tiene problemas para conectarse a cualquiera de los hosts, primero haga ping al otro host para asegurarse de que esté accesible. Es posible que deba permitir conexiones de un host a otro modificando las reglas de cortafuegos y SELinux (si utiliza SELinux).

Crear la conexión remota

Para crear una conexión remota:

  1. En el servidor de base de datos, como usuario con privilegios de root, abra el archivo de configuración de MySQL.

    Para localizarlo, introduzca el siguiente comando:

    mysql --help
    

    La ubicación se muestra de forma similar a la siguiente:

    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
    
    NOTA
    En Ubuntu 16, la ruta suele ser /etc/mysql/mysql.conf.d/mysqld.cnf.
  2. Busque bind-address en el archivo de configuración.

    Si existe, cambie el valor de la siguiente manera.

    Si no existe, agréguela a la sección [mysqld].

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

    Consulte Documentación de MySQL, especialmente si tiene un servidor web en clúster.

  3. Guarde los cambios en el archivo de configuración y salga del editor de texto.

  4. Reinicie el servicio MySQL:

    • CentOS: service mysqld restart

    • Ubuntu: service mysql restart

    NOTA
    Si MySQL no se inicia, busque en syslog el origen del problema. Resuelva el problema usando documentación MySQL u otro origen autorizado.

Conceder acceso a un usuario de base de datos

Para permitir que el nodo web se conecte al servidor de base de datos, debe conceder a un usuario de base de datos de nodo web acceso a la base de datos en el servidor remoto.

Este ejemplo concede al usuario de la base de datos root acceso completo a la base de datos en el host remoto.

Para conceder acceso a un usuario de base de datos:

  1. Inicie sesión en el servidor de la base de datos.

  2. Conéctese a la base de datos MySQL como usuario root.

  3. Introduzca el siguiente comando:

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

    Por ejemplo,

    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    NOTA
    Si el servidor web está agrupado, escriba el mismo comando en todos los servidores web. Debe utilizar el mismo nombre de usuario para cada servidor web.

Verificar acceso a base de datos

En el host del nodo web, introduzca el siguiente comando para comprobar que la conexión funciona:

mysql -u <local database username> -h <database server ip address> -p

Si el monitor MySQL se muestra de la siguiente manera, la base de datos está lista para Adobe Commerce:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 213 Server version: 5.6.26 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Si el servidor web está agrupado, introduzca el comando en cada host de servidor web.