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
root
al file system e accedere a MySQL come root
.Prerequisiti
Prima di iniziare, è necessario:
- Installare il server MySQL nel server di database.
- Creare un'istanza di database nel server di database.
- Installa il client MySQL nel nodo Web di Adobe Commerce. Per ulteriori informazioni, consultare la documentazione MySQL.
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:
-
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-none 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
. -
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.
-
Salva le modifiche nel file di configurazione e chiudi l’editor di testo.
-
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:
-
Accedere al server del database.
-
Connetti al database MySQL come utente
root
. -
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