MySQL-service instellen
De mysql
dienst verstrekt blijvende gegevensopslag die op wordt gebaseerd MariaDBversies 10.2 tot 10.4, ondersteunend de XtraDBopslagmotor en heropgezette eigenschappen van MySQL 5.6 en 5.7.
Het opnieuw indexeren op MariaDB 10.4 neemt meer tijd in vergelijking met andere versies MariaDB of MySQL. Zie Indexersin de Beste praktijken van Prestaties gids.
Gebruik de volgende instructies voor de dienstopstelling op de milieu's van de Integratie Pro en van de Starter milieu's, met inbegrip van de master
tak.
om MySQL toe te laten:
-
Voeg de vereiste naam, het type en de schijfwaarde (in MB) toe aan het
.magento/services.yaml
-bestand.code language-yaml mysql: type: mysql:<version> disk: 5120
note tip TIP MySQL-fouten, zoals PDO Exception: MySQL server has gone away
, kunnen optreden als er onvoldoende schijfruimte is. Controleer of u voldoende schijfruimte hebt toegewezen aan de service in het.magento/services.yaml
-bestand. -
Configureer de relaties in het
.magento.app.yaml
-bestand.code language-yaml relationships: database: "mysql:mysql"
-
U kunt wijzigingen in de code toevoegen, doorvoeren en doorvoeren.
code language-bash git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable mysql service" && git push origin <branch-name>
services.yaml
en .magento.app.yaml
bij te werken. Zie de dienstversie van de Veranderingvoor begeleiding bij de bevordering of het degraderen van de dienst.MySQL-database configureren
U hebt de volgende opties wanneer het vormen van het gegevensbestand MySQL:
schemas
- Een schema definieert een database. Het standaardschema is demain
-database.endpoints
- Elk eindpunt vertegenwoordigt een referentie met specifieke bevoegdheden. Het standaardeindpunt ismysql
, datadmin
toegang heeft tot demain
-database.properties
- De eigenschappen worden gebruikt om extra gegevensbestandconfiguraties te bepalen.
Hieronder volgt een eenvoudige voorbeeldconfiguratie in het .magento/services.yaml
-bestand:
mysql:
type: mysql:10.4
disk: 5120
configuration:
properties:
optimizer_switch: "rowid_filter=off"
optimizer_use_condition_selectivity: 1
properties
in het bovenstaande voorbeeld wijzigt de standaard optimizer
montages zoals geadviseerd in de gids van Beste praktijken van Prestaties.
MariaDB configuratieopties:
default_charset
default_collation
max_allowed_packet
1
tot 100
.optimizer_switch
optimizer_use_condition_selectivity
1
tot 5
. Zie {de documentatie van 0} MariaDB 🔗.Meerdere databasegebruikers instellen
U kunt desgewenst meerdere gebruikers instellen met verschillende machtigingen voor toegang tot de main
-database.
Standaard is er één eindpunt met de naam mysql
dat beheerderstoegang tot de database heeft. Als u meerdere databasegebruikers wilt instellen, moet u meerdere eindpunten in het services.yaml
-bestand definiëren en de relaties in het .magento.app.yaml
-bestand declareren. Voor Pro het Opvoeren en de milieu's van de Productie, voorleggen een kaartje van de Steun van Adobe Commerceom de extra gebruiker te verzoeken.
Gebruik een geneste array om de eindpunten voor specifieke gebruikerstoegang te definiëren. Elk eindpunt kan toegang tot één of meerdere schema's (gegevensbestanden) en verschillende niveaus van toestemming op elk aanwijzen.
De geldige machtigingsniveaus zijn:
ro
: alleen SELECT-query's zijn toegestaan.rw
: query's SELECT en query's INSERT, UPDATE en DELETE zijn toegestaan.admin
: Alle vragen zijn toegestaan, met inbegrip van vragen DDL (CREATE LIJST, DROP LIJST, en meer).
Bijvoorbeeld:
mysql:
type: mysql:10.4
disk: 5120
configuration:
schemas:
- main
endpoints:
admin:
default_schema: main
privileges:
main: admin
reporter:
privileges:
main: ro
importer:
privileges:
main: rw
properties:
optimizer_switch: "rowid_filter=off"
optimizer_use_condition_selectivity: 1
In het vorige voorbeeld biedt het eindpunt admin
beheerderniveau toegang tot de database main
, biedt het eindpunt reporter
alleen-lezen toegang en het eindpunt importer
biedt alleen-lezen toegang, wat betekent:
- De gebruiker van
admin
heeft volledige controle over de database. - De gebruiker
reporter
heeft alleen SELECT-rechten. - De gebruiker van
importer
heeft SELECT, INSERT, UPDATE, en DELETE voorrechten.
Voeg de eindpunten die in het bovenstaande voorbeeld worden gedefinieerd, toe aan de eigenschap relationships
van het .magento.app.yaml
-bestand. Bijvoorbeeld:
relationships:
database: "mysql:admin"
databasereporter: "mysql:reporter"
databaseimporter: "mysql:importer"
DEFINER
toegangsbeheermechanisme voor opgeslagen procedures en meningen gebruiken.Verbinding maken met de database
Als u rechtstreeks toegang wilt krijgen tot de MariaDB-database, moet u een SSH gebruiken om u aan te melden bij de externe Cloud-omgeving en verbinding te maken met de database.
-
Gebruik SSH om u aan te melden bij de externe omgeving.
code language-bash magento-cloud ssh
-
Haal de MySQL login geloofsbrieven van de
database
entype
eigenschappen in de $MAGENTO_CLOUD_RELATIONSHIPSvariabele terug.code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
of
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
In de reactie, vind de informatie MySQL. Bijvoorbeeld:
code language-json "database" : [ { "password" : "", "rel" : "mysql", "hostname" : "nnnnnnnn.mysql.service._.magentosite.cloud", "service" : "mysql", "host" : "database.internal", "ip" : "###.###.###.###", "port" : 3306, "path" : "main", "cluster" : "projectid-integration-id", "query" : { "is_master" : true }, "type" : "mysql:10.3", "username" : "user", "scheme" : "mysql" } ],
-
Maak verbinding met de database.
-
Gebruik voor Starter de volgende opdracht:
code language-bash mysql -h database.internal -u <username>
-
Gebruik voor Pro de volgende opdracht met hostnaam, poortnummer, gebruikersnaam en wachtwoord uit de variabele
$MAGENTO_CLOUD_RELATIONSHIPS
.code language-bash mysql -h <hostname> -P <number> -u <username> -p'<password>'
-
magento-cloud db:sql
kunt u verbinding maken met de externe database en SQL-opdrachten uitvoeren.Verbinding maken met secundaire database
Soms, moet u met het secundaire gegevensbestand verbinden om gegevensbestandprestaties te verbeteren of gegevensbestand het sluiten kwesties op te lossen. Als deze configuratie vereist is, gebruikt u "port" : 3304
om de verbinding tot stand te brengen. Zie Beste praktijken om het MySQL slave verbindingsonderwerp in de gids van de Beste praktijken van de Implementatie te vormen.
Problemen oplossen
Raadpleeg de volgende Adobe Commerce Support-artikelen voor hulp bij het oplossen van MySQL-problemen: