Configurar o serviço MySQL
A variável mysql
serviço de fornece armazenamento de dados persistente com base em MariaDB versões 10.2 a 10.4, que suportam a XtraDB mecanismo de armazenamento e recursos reimplementados do MySQL 5.6 e 5.7.
A reindexação no MariaDB 10.4 leva mais tempo em comparação com outras versões do MariaDB ou MySQL. Consulte Indexadores no Práticas recomendadas de desempenho guia.
Use as instruções a seguir para configurar o serviço em ambientes Pro Integration e Starter, incluindo o master
filial.
Para ativar o MySQL:
-
Adicione o nome, o tipo e o valor de disco necessário (em MB) à
.magento/services.yaml
arquivo.code language-yaml mysql: type: mysql:<version> disk: 5120
note tip TIP Erros MySQL, como PDO Exception: MySQL server has gone away
, pode ocorrer como resultado de espaço em disco insuficiente. Verifique se você alocou espaço em disco suficiente para o serviço no.magento/services.yaml
arquivo. -
Configure os relacionamentos no
.magento.app.yaml
arquivo.code language-yaml relationships: database: "mysql:mysql"
-
Adicionar, confirmar e enviar por push as alterações de código.
code language-bash git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable mysql service" && git push origin <branch-name>
services.yaml
e .magento.app.yaml
arquivos de configuração. Consulte Alterar versão do serviço para obter orientação sobre como atualizar ou rebaixar um serviço.Configurar banco de dados MySQL
Você tem as seguintes opções ao configurar o banco de dados MySQL:
schemas
—Um schema define um banco de dados. O schema padrão é omain
banco de dados.endpoints
— Cada endpoint representa uma credencial com privilégios específicos. O endpoint padrão émysql
, queadmin
acesso àmain
banco de dados.properties
—As propriedades são usadas para definir configurações adicionais de banco de dados.
Veja a seguir um exemplo básico de configuração no .magento/services.yaml
arquivo:
mysql:
type: mysql:10.4
disk: 5120
configuration:
properties:
optimizer_switch: "rowid_filter=off"
optimizer_use_condition_selectivity: 1
A variável properties
no exemplo acima modifica o valor padrão optimizer
configurações como recomendado no guia de Práticas recomendadas de desempenho.
Opções de configuração do MariaDB:
default_charset
default_collation
max_allowed_packet
1
para 100
.optimizer_switch
optimizer_use_condition_selectivity
1
para 5
. Consulte Documentação do MariaDB.Configurar vários usuários do banco de dados
Como opção, você pode configurar vários usuários com permissões diferentes para acessar o main
banco de dados.
Por padrão, há um endpoint chamado mysql
que tenha acesso de administrador ao banco de dados. Para configurar vários usuários do banco de dados, você deverá definir vários endpoints no services.yaml
arquivo e declare as relações no .magento.app.yaml
arquivo. Para ambientes de preparo e produção profissionais, Enviar um tíquete de suporte da Adobe Commerce para solicitar o usuário adicional.
Use uma matriz aninhada para definir os endpoints de acesso do usuário específico. Cada endpoint pode designar acesso a um ou mais schemas (bancos de dados) e diferentes níveis de permissão em cada um.
Os níveis de permissão válidos são:
ro
: somente consultas SELECT são permitidas.rw
: consultas SELECT e INSERT, UPDATE e DELETE são permitidas.admin
: Todas as consultas são permitidas, incluindo consultas DDL (CREATE TABLE, DROP TABLE e muito mais).
Por exemplo:
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
No exemplo anterior, a variável admin
O endpoint fornece acesso de nível administrativo à main
banco de dados, a variável reporter
O endpoint fornece acesso somente leitura e a variável importer
O endpoint fornece acesso de leitura e gravação, o que significa:
- A variável
admin
O usuário tem controle total do banco de dados. - A variável
reporter
o usuário tem somente privilégios SELECT. - A variável
importer
O usuário possui os privilégios SELECT, INSERT, UPDATE e DELETE.
Adicione os endpoints definidos no exemplo acima à variável relationships
propriedade do .magento.app.yaml
arquivo. Por exemplo:
relationships:
database: "mysql:admin"
databasereporter: "mysql:reporter"
databaseimporter: "mysql:importer"
DEFINER
mecanismo de controle de acesso para procedimentos e visualizações armazenados.Conectar ao banco de dados
O acesso direto ao banco de dados do MariaDB requer que você use um SSH para fazer logon no ambiente remoto da nuvem e se conectar ao banco de dados.
-
Use o SSH para fazer logon no ambiente remoto.
code language-bash magento-cloud ssh
-
Recupere as credenciais de logon do MySQL da
database
etype
propriedades na $MAGENTO_CLOUD_RELATIONSHIPS variável.code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
ou
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
Na resposta, localize as informações do MySQL. Por exemplo:
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" } ],
-
Conectar ao banco de dados.
-
Para Iniciante, use o seguinte comando:
code language-bash mysql -h database.internal -u <username>
-
Para Pro, use o seguinte comando com nome do host, número da porta, nome de usuário e senha recuperados do
$MAGENTO_CLOUD_RELATIONSHIPS
variável.code language-bash mysql -h <hostname> -P <number> -u <username> -p'<password>'
-
magento-cloud db:sql
para conectar ao banco de dados remoto e executar comandos SQL.Conectar ao banco de dados secundário
Às vezes, você precisa se conectar ao banco de dados secundário para melhorar o desempenho do banco de dados ou resolver problemas de bloqueio do banco de dados. Se essa configuração for necessária, use "port" : 3304
para estabelecer a conexão. Consulte a Prática recomendada para configurar a conexão slave do MySQL tópico no Práticas recomendadas de implementação guia.
Solução de problemas
Consulte os seguintes artigos de suporte da Adobe Commerce para obter ajuda com a solução de problemas do MySQL: