Configurar o serviço MySQL
O serviço mysql
fornece armazenamento de dados persistente com base nas versões 10.2 a 10.4 do MariaDB, com suporte para o mecanismo de armazenamento XtraDB e reimplementou os recursos 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 guia de Práticas recomendadas de desempenho.
Use as instruções a seguir para a configuração do serviço em ambientes Pro Integration e Starter, incluindo a ramificação master
.
Para habilitar MySQL:
-
Adicione o nome, o tipo e o valor de disco necessário (em MB) ao arquivo
.magento/services.yaml
.code language-yaml mysql: type: mysql:<version> disk: 5120
note tip TIP Erros do MySQL, como PDO Exception: MySQL server has gone away
, podem ocorrer como resultado de espaço em disco insuficiente. Verifique se você alocou espaço em disco suficiente para o serviço no arquivo.magento/services.yaml
. -
Configure as relações no arquivo
.magento.app.yaml
.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
. Consulte Alterar versão de 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 esquema define um banco de dados. O esquema padrão é o banco de dadosmain
.endpoints
— Cada ponto de extremidade representa uma credencial com privilégios específicos. O ponto de extremidade padrão émysql
, que tem acesso deadmin
ao banco de dadosmain
.properties
— As propriedades são usadas para definir configurações adicionais de banco de dados.
Este é um exemplo básico de configuração no arquivo .magento/services.yaml
:
mysql:
type: mysql:10.4
disk: 5120
configuration:
properties:
optimizer_switch: "rowid_filter=off"
optimizer_use_condition_selectivity: 1
O properties
no exemplo acima modifica as configurações padrão optimizer
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
a 100
.optimizer_switch
optimizer_use_condition_selectivity
1
a 5
. Consulte a 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 banco de dados main
.
Por padrão, há um ponto de extremidade chamado mysql
que tem acesso de administrador ao banco de dados. Para configurar vários usuários do banco de dados, você deve definir vários pontos de extremidade no arquivo services.yaml
e declarar as relações no arquivo .magento.app.yaml
. Para ambientes de Preparo e Produção Profissionais, Envie 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 consultas 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, o ponto de extremidade admin
fornece acesso de nível administrativo ao banco de dados main
, o ponto de extremidade reporter
fornece acesso somente leitura e o ponto de extremidade importer
fornece acesso somente leitura, o que significa:
- O usuário
admin
tem controle total do banco de dados. - O usuário
reporter
tem somente privilégios SELECT. - O usuário
importer
tem privilégios SELECT, INSERT, UPDATE e DELETE.
Adicione os pontos de extremidade definidos no exemplo acima à propriedade relationships
do arquivo .magento.app.yaml
. Por exemplo:
relationships:
database: "mysql:admin"
databasereporter: "mysql:reporter"
databaseimporter: "mysql:importer"
DEFINER
para procedimentos e exibiçõ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 das propriedades
database
etype
na variável $MAGENTO_CLOUD_RELATIONSHIPS.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 de host, número da porta, nome de usuário e senha recuperados da variável
$MAGENTO_CLOUD_RELATIONSHIPS
.code language-bash mysql -h <hostname> -P <number> -u <username> -p'<password>'
-
magento-cloud db:sql
para se 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 esta configuração for necessária, use "port" : 3304
para estabelecer a conexão. Consulte o tópico Prática recomendada para configurar a conexão subordinada do MySQL no guia Práticas recomendadas de implementação.
Solução de problemas
Consulte os seguintes artigos de suporte da Adobe Commerce para obter ajuda com a solução de problemas do MySQL: