Een externe MySQL-databaseverbinding instellen
Soms wilt u de database op een aparte server hosten in plaats van de databaseserver en de webserver op dezelfde computer uit te voeren.
Adobe biedt een manier om verbinding te maken met een MySQL-server op een andere computer. Vanaf Adobe Commerce 2.4.3 kunt u de toepassing ook zodanig configureren dat deze een Amazon Web Services (AWS) Aurora-database zonder codewijzigingen gebruikt.
Aurora is een krachtige, volledig compatibele MySQL-server die op AWS wordt gehost.
Verbinding maken met een AWS Aurora-database
Het gebruiken van Aurora als gegevensbestand is zo gemakkelijk zoals specificerend het gegevensbestand in de regelmatige de opstellingsconfiguratie van Adobe Commerce, gebruikend de standaardgegevensbestandschakelaar.
Wanneer u bin/magento setup:install
uitvoert, gebruikt u de Aurora-informatie in de db-
-velden:
bin/magento setup:install ... --db-host='database-aurora.us-east-1.rds.amazonaws.com' --db-name='magento2' --db-user='username' --db-password='password' ...
De waarde db-host
is de URL van Aurora, waarbij de URL https://
en de URL aan het einde :portnumber
zijn verwijderd.
Een externe databaseverbinding instellen
root
toegang hebben tot het bestandssysteem en u moet zich als root
kunnen aanmelden bij MySQL.Vereisten
Voordat u begint, moet u:
- installeer server MySQLop de gegevensbestandserver.
- creeer een gegevensbestandinstantieop de gegevensbestandserver.
- Installeer de MySQL-client op het Adobe Commerce-webknooppunt. Raadpleeg MySQL-documentatie voor meer informatie.
Hoge beschikbaarheid
Gebruik de volgende richtlijnen om externe databaseverbindingen te configureren als uw webserver of databaseserver geclusterd is:
-
U moet een verbinding voor elke knoop van de Webserver vormen.
-
Typisch, vormt u een gegevensbestandverbinding aan het taakverdelingsmechanisme van het gegevensbestand; nochtans, kan het gegevensbestand zich groeperen complex zijn en het vormen is aan u. De Adobe doet geen specifieke aanbevelingen voor gegevensbestand zich groeperen.
Voor meer informatie, zie documentatie MySQL.
Verbindingsproblemen oplossen
Als u kwesties hebt die met één van beide gastheer verbinden, pingel eerst de andere gastheer om ervoor te zorgen het bereikbaar is. Mogelijk moet u verbindingen van de ene host naar de andere toestaan door de firewall en de SELinux-regels te wijzigen (als u SELinux gebruikt).
De externe verbinding maken
Een externe verbinding maken:
-
Open het MySQL-configuratiebestand op uw databaseserver als een gebruiker met
root
-bevoegdheden.Voer de volgende opdracht in om het bestand te zoeken:
code language-bash mysql --help
De locatie wordt als volgt weergegeven:
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 In Ubuntu 16 is het pad doorgaans /etc/mysql/mysql.conf.d/mysqld.cnf
. -
Zoek in het configuratiebestand naar
bind-address
.Wijzig, indien aanwezig, de waarde als volgt.
Als deze niet bestaat, voegt u deze toe aan de sectie
[mysqld]
.code language-conf bind-address = <ip address of your web node>
Zie documentatie MySQL, vooral als u een gegroepeerde Webserver hebt.
-
Sla de wijzigingen in het configuratiebestand op en sluit de teksteditor af.
-
Start de MySQL-service opnieuw:
-
CentOS:
service mysqld restart
-
Ubuntu:
service mysql restart
note note NOTE Als MySQL er niet in slaagt om te beginnen, zoek in syslog naar de bron van de kwestie. Los de kwestie op gebruikend documentatie MySQLof een andere gebiedende bron. -
Toegang tot een databasegebruiker verlenen
Om uw Webknoop toe te laten om met de gegevensbestandserver te verbinden, moet u een gebruiker van het Webknoopgegevensbestand toegang tot het gegevensbestand op de verre server verlenen.
In dit voorbeeld krijgt de databasegebruiker van root
volledige toegang tot de database op de externe host.
Toegang verlenen aan een databasegebruiker:
-
Log in bij de databaseserver.
-
Maak als
root
-gebruiker verbinding met de MySQL-database. -
Voer de volgende opdracht in:
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>';
Bijvoorbeeld:
code language-shell GRANT ALL ON magento_remote.* TO dbuser@192.0.2.50 IDENTIFIED BY 'dbuserpassword';
note note NOTE Als uw webserver geclusterd is, voert u op elke webserver dezelfde opdracht in. U moet voor elke webserver dezelfde gebruikersnaam gebruiken.
Databasetoegang controleren
Voer op de host van uw webknooppunt de volgende opdracht in om te controleren of de verbinding werkt:
mysql -u <local database username> -h <database server ip address> -p
Als de MySQL-monitor als volgt wordt weergegeven, is de database gereed voor 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.
Als uw webserver is geclusterd, voert u de opdracht in op elke host van de webserver.
De Adobe Commerce installeren
Wanneer u Adobe Commerce installeert, moet u het volgende opgeven:
- De basis URL (die ook als wordt bedoeld opslagadres) specificeert hostname of IP adres van de Webknoop
- De gastheer van het gegevensbestand is het IP van de 0} verre gegevensbestandserver {adres (of ladingsverdelingsmechanisme als de gegevensbestandserver gegroepeerd is)
- De gebruikersbenaming van het gegevensbestand is de lokale knoop van het Web gegevensbestandgebruiker waaraan u toegang gaf
- Databasewachtwoord is het wachtwoord van de gebruiker van het lokale webknooppunt
- Databasenaam is de naam van de database op de externe server