Configurare una connessione remota al database MySQL

A volte può essere necessario ospitare il database su un server separato anziché eseguire il server di database e il server web sullo stesso computer.

L'Adobe ha fornito un modo per connettersi a un server MySQL su un computer diverso. A partire dalla versione 2.4.3 di Adobe Commerce, è anche possibile configurare l’applicazione per l’utilizzo di un database Amazon Web Services (AWS) Aurora senza modifiche al codice.

Aurora è un server MySQL ad alte prestazioni e completamente conforme ospitato su AWS.

Connessione a un database AWS Aurora

L’utilizzo di Aurora come database è semplice come specificare il database nella normale configurazione di configurazione di Adobe Commerce, utilizzando il connettore di database predefinito.

Durante l'esecuzione di bin/magento setup:install, utilizzare le informazioni di Aurora nei campi db-:

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

Il valore db-host è l'URL di Aurora con https:// e :portnumber finale rimossi.

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:

    code language-bash
    mysql --help
    

    La posizione viene visualizzata in modo simile al seguente:

    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
    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].

    code language-conf
    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 note
    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:

    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>';
    

    Ad esempio:

    code language-shell
    GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
    
    note note
    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.

Installare Adobe Commerce

Quando installi Adobe Commerce, devi specificare quanto segue:

  • L'URL di base (detto anche indirizzo archivio) specifica il nome host o l'indirizzo IP del nodo Web
  • L'host del database è l'indirizzo IP del server di database remoto (o il load balancer se il server di database è in cluster)
  • Il nome utente del database è l'utente del database del nodo Web locale a cui hai dato accesso
  • La password del database è la password dell'utente del nodo Web locale
  • Nome database è il nome del database sul server remoto
recommendation-more-help
0f8e7db5-0e9c-4002-a5b8-a0088077d995