Configurar uma conexão remota com o banco de dados MySQL

Às vezes, talvez você queira hospedar o banco de dados em um servidor separado em vez de executar o servidor de banco de dados e o servidor da Web na mesma máquina.

O Adobe forneceu uma maneira de se conectar a um servidor MySQL em uma máquina diferente. A partir do Adobe Commerce 2.4.3, você também pode configurar o aplicativo para usar um banco de dados Amazon Web Services (AWS) Aurora sem alterações no código.

O Aurora é um servidor MySQL de alto desempenho, totalmente compatível, hospedado na AWS.

Conexão com um banco de dados AWS Aurora

Usar o Aurora como banco de dados é tão fácil quanto especificar o banco de dados na configuração normal do Adobe Commerce, usando o conector de banco de dados padrão.

Ao executar bin/magento setup:install, use as informações do Aurora no db- campos:

bin/magento setup:install ... --db-host='database-aurora.us-east-1.rds.amazonaws.com' --db-name='magento2' --db-user='username' --db-password='password' ...

A variável db-host o valor é o URL do Aurora com o https:// e à direita :portnumber removido.

Configuração de uma conexão de banco de dados remota

NOTE
Este é um tópico avançado que deve ser usado somente por um administrador de rede ou administrador de banco de dados experiente. Você deve ter root acesso ao sistema de arquivos e você deverá ser capaz de fazer login no MySQL como root.

Pré-requisitos

Antes de começar, você deve:

Alta disponibilidade

Use as diretrizes a seguir para configurar conexões de banco de dados remoto se o servidor Web ou o servidor de banco de dados estiver clusterizado:

  • Você deve configurar uma conexão para cada nó do servidor Web.

  • Normalmente, você configura uma conexão de banco de dados para o balanceador de carga de banco de dados; no entanto, o clustering de banco de dados pode ser complexo e a configuração depende de você. O Adobe não faz recomendações específicas para clustering de banco de dados.

    Para obter mais informações, consulte Documentação do MySQL.

Resolução de problemas de conexão

Se você tiver problemas ao se conectar a um dos hosts, primeiro execute ping no outro host para verificar se ele pode ser acessado. Talvez seja necessário permitir conexões de um host para outro modificando as regras de firewall e SELinux (se você usar SELinux).

Criar a conexão remota

Para criar uma conexão remota:

  1. No servidor de banco de dados, como um usuário com root privilégios, abra o arquivo de configuração do MySQL.

    Para localizá-lo, digite o seguinte comando:

    code language-bash
    mysql --help
    

    O local é exibido de forma semelhante ao seguinte:

    code language-terminal
    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 note
    NOTE
    No Ubuntu 16, o caminho é normalmente /etc/mysql/mysql.conf.d/mysqld.cnf.
  2. Procure no arquivo de configuração por bind-address.

    Se existir, altere o valor da seguinte maneira.

    Se não existir, adicione-o à [mysqld] seção.

    code language-conf
    bind-address = <ip address of your web node>
    

    Consulte Documentação do MySQL, especialmente se você tiver um servidor Web em cluster.

  3. Salve as alterações no arquivo de configuração e saia do editor de texto.

  4. Reinicie o serviço MySQL:

    • CentOS: service mysqld restart

    • Ubuntu: service mysql restart

    note note
    NOTE
    Se o MySQL não for iniciado, procure no syslog a origem do problema. Resolva o problema usando Documentação do MySQL ou outra fonte autorizada.

Conceder acesso a um usuário do banco de dados

Para permitir que o nó da Web se conecte ao servidor de banco de dados, você deve conceder a um usuário de banco de dados do nó da Web acesso ao banco de dados no servidor remoto.

Este exemplo concede a root usuário do banco de dados acesso total ao banco de dados no host remoto.

Para conceder acesso a um usuário do banco de dados:

  1. Efetue log-in no servidor de banco de dados.

  2. Conecte-se ao banco de dados MySQL como o root usuário.

  3. Digite o seguinte comando:

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

    Por exemplo,

    code language-shell
    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    note note
    NOTE
    Se o servidor Web estiver clusterizado, insira o mesmo comando em cada servidor Web. Você deve usar o mesmo nome de usuário para cada servidor Web.

Verificar acesso ao banco de dados

No host do nó da Web, digite o seguinte comando para verificar se a conexão funciona:

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

Se o monitor MySQL for exibido da seguinte maneira, o banco de dados estará pronto para o 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.

Se o servidor Web estiver clusterizado, insira o comando em cada host do servidor Web.

Instalar o Adobe Commerce

Ao instalar o Adobe Commerce, você deve especificar o seguinte:

  • O URL de base (também conhecido como endereço da loja) especifica o nome do host ou endereço IP do nó da web
  • O host do banco de dados é o servidor de banco de dados remoto Endereço IP (ou balanceador de carga se o servidor de banco de dados estiver clusterizado)
  • O nome de usuário do banco de dados é o nó da web local usuário do banco de dados ao qual você deu acesso
  • A senha do banco de dados é a senha do usuário do nó da Web local
  • Nome do banco de dados é o nome do banco de dados no servidor remoto
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995