Impostazione di una connessione al database remoto

NOTE
Si tratta di un argomento avanzato che deve essere utilizzato solo da un amministratore di rete o da un amministratore di database esperto. È necessario disporre dell'accesso root al file system e accedere a MySQL come root.

Prerequisiti

Prima di iniziare, è necessario:

Elevata disponibilità

Utilizzare le linee guida seguenti per configurare le connessioni al database remoto se il server Web o il server di database sono cluster:

  • È necessario configurare una connessione per ogni nodo del server Web.

  • In genere si configura una connessione al database load balancer; tuttavia, il clustering del database può essere complesso e la configurazione dipende dall'utente. L'Adobe non fornisce raccomandazioni specifiche per il clustering del database.

    Per ulteriori informazioni, vedere la documentazione MySQL.

Risoluzione dei problemi di connessione

In caso di problemi di connessione a uno degli host, effettua prima il ping dell’altro host per assicurarti che sia raggiungibile. Potrebbe essere necessario consentire le connessioni da un host all'altro modificando le regole firewall e SELinux (se si utilizza SELinux).

Creare la connessione remota

Per creare una connessione remota:

  1. Nel server di database, come utente con privilegi root, aprire il file di configurazione MySQL.

    Per individuarlo, immetti il seguente comando:

    mysql --help
    

    La posizione viene visualizzata in modo simile al seguente:

    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
    Su Ubuntu 16, il percorso è in genere /etc/mysql/mysql.conf.d/mysqld.cnf.
  2. Cerca bind-address nel file di configurazione.

    Se esiste, modificare il valore come indicato di seguito.

    Se non esiste, aggiungerlo alla sezione [mysqld].

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

    Consulta la documentazione di MySQL, soprattutto se disponi di un server Web cluster.

  3. Salva le modifiche nel file di configurazione e chiudi l’editor di testo.

  4. Riavviare il servizio MySQL:

    • CentOS: service mysqld restart

    • Ubuntu: service mysql restart

    NOTE
    Se MySQL non viene avviato correttamente, cercare l'origine del problema in syslog. Risolvere il problema utilizzando la documentazione MySQL o un'altra origine autorevole.

Concedere l’accesso a un utente del database

Per consentire al nodo Web di connettersi al server di database, è necessario concedere a un nodo Web l'accesso utente al database sul server remoto.

Questo esempio concede all'utente del database root l'accesso completo al database sull'host remoto.

Per concedere l'accesso a un utente del database:

  1. Accedere al server del database.

  2. Connetti al database MySQL come utente root.

  3. Immetti il comando seguente:

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

    Ad esempio:

    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    NOTE
    Se il server Web è in cluster, immettere lo stesso comando su ogni server Web. È necessario utilizzare lo stesso nome utente per ogni server web.

Verificare l'accesso al database

Nell’host del nodo web, immetti il seguente comando per verificare il funzionamento della connessione:

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

Se il monitoraggio MySQL viene visualizzato come segue, il database è pronto per 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 il server Web è in cluster, immettere il comando su ciascun host del server Web.