Guia de Solução de Problemas do Serviço MariaDB
MariaDB é um sistema de gerenciamento de banco de dados relacional de código aberto amplamente utilizado em vários cenários de aplicação. Embora o MariaDB geralmente funcione de maneira estável, você pode encontrar falhas de serviço ou problemas de desempenho em certas situações. Este artigo descreve detalhadamente como solucionar problemas do serviço MariaDB no ServBay, incluindo problemas comuns, etapas de diagnóstico e soluções. O ServBay roda no sistema operacional macOS e vem com diferentes versões do MariaDB, então em alguns comandos é necessário especificar arquivos de configuração e diretórios específicos da versão.
Problemas Comuns e Soluções
1. O serviço MariaDB não pode ser iniciado
Possíveis Causas
- Arquivo de configuração incorreto
- Porta em uso
- Problema de permissão
Soluções
Verifique o arquivo de configuração: Certifique-se de que a sintaxe do arquivo de configuração
my.cnf
esteja correta, o caminho é:bash/Applications/ServBay/etc/mariadb/11.3/my.cnf
1Use o seguinte comando para verificar a configuração do arquivo:
bashmysqld --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf --validate-config
1Verifique o uso da porta: Certifique-se de que a porta usada pelo MariaDB (padrão 3306) não esteja em uso por outro processo. Use o seguinte comando para verificar o uso da porta:
bashlsof -i :3306
1Verifique as permissões: Certifique-se de que as permissões do diretório de dados e do arquivo de configuração do MariaDB estejam corretas. Use o seguinte comando para verificar as permissões:
bashls -l /Applications/ServBay/db/mariadb/11.3 ls -l /Applications/ServBay/etc/mariadb/11.3/my.cnf
1
2Iniciar serviço: Tente reiniciar o serviço MariaDB:
bashservbayctl restart mariadb 11.3
1
2. Não é possível conectar ao MariaDB
Possíveis Causas
- Serviço MariaDB não está em execução
- Firewall bloqueando a conexão
- Problema de permissão de usuário
Soluções
Verifique o status do serviço: Certifique-se de que o serviço MariaDB esteja em execução:
bashservbayctl status mariadb 11.3
1Verifique as configurações do firewall: Certifique-se de que o firewall permita a porta do MariaDB (padrão 3306) passar:
bashsudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ServBay/bin/mysqld sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/ServBay/bin/mysqld
1
2Verifique as permissões do usuário: Certifique-se de que o usuário tenha permissões suficientes para se conectar ao banco de dados:
sqlSHOW GRANTS FOR 'your_username'@'localhost';
1Teste de conexão: Use o seguinte comando para testar a conexão:
bashmysql --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p -h localhost -P 3306
1
3. Problemas de desempenho
Possíveis Causas
- Consulta não otimizada
- Configuração inadequada de cache
- Índices ausentes
Soluções
Otimizar consulta: Use
EXPLAIN
para analisar o desempenho da consulta e otimizá-la conforme necessário:sqlEXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1Ajustar cache: Ajuste as configurações de cache no
my.cnf
, por exemplo:[mysqld] query_cache_size = 64M innodb_buffer_pool_size = 1G
1
2
3Criar índices: Certifique-se de que as colunas usadas com frequência em consultas tenham índices:
sqlCREATE INDEX idx_column_name ON your_table_name(column_name);
1
4. Queda do banco de dados
Possíveis Causas
- Falha de hardware
- Conflito de software
- Configuração incorreta
Soluções
Verifique o log de erros: Verifique o log de erros do MariaDB para encontrar a causa específica da falha. O caminho do log de erros é:
bash/Applications/ServBay/logs/mariadb/11.3.err
1Reparar banco de dados: Use a ferramenta
mysqlcheck
para reparar o banco de dados:bashmysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p --auto-repair --all-databases
1Restaurar dados: Se os arquivos do banco de dados estiverem corrompidos, você pode restaurar os dados a partir de um backup. O caminho dos arquivos de backup é:
bash/Applications/ServBay/backup/mariadb/11.3
1
5. Problemas de backup e recuperação
Possíveis Causas
- Arquivo de backup corrompido
- Comando de recuperação incorreto
Soluções
Verifique o arquivo de backup: Certifique-se de que o arquivo de backup esteja completo e não corrompido. Use o seguinte comando para verificar o tamanho e a integridade do arquivo de backup:
bashls -lh /Applications/ServBay/backup/mariadb/11.3/your_backup.sql
1Recuperar o banco de dados corretamente: Use a ferramenta
mysql
para recuperar o banco de dados corretamente:bashmysql --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p your_database < /Applications/ServBay/backup/mariadb/11.3/your_backup.sql
1
Problema específico: ib_logfile0 was not found
e InnoDB: Missing FILE_CHECKPOINT(47594) at 47594
Possível Causa
- Bug do MariaDB 11.5.1
Log de Erros
240618 22:37:46 mysqld_safe Starting mariadbd daemon with databases from /Applications/ServBay/db/mariadb/11.5
2024-06-18 22:37:46 0 [Note] Starting MariaDB 11.5.1-MariaDB-log source revision 65079ece42f383bdeb9b3f913a833a6f0123919d as process 3323
2024-06-18 22:37:46 0 [Warning] Setting lower_case_table_names=2 because file system for /Applications/ServBay/db/mariadb/11.5/ is case insensitive
2024-06-18 22:37:47 0 [Warning] --innodb-file-per-table is deprecated and will be removed in a future release
2024-06-18 22:37:47 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2024-06-18 22:37:47 0 [Note] InnoDB: Number of transaction pools: 1
2024-06-18 22:37:47 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-06-18 22:37:47 0 [Note] InnoDB: Initializing buffer pool, total size = 4.000GiB, chunk size = 64.000MiB
2024-06-18 22:37:47 0 [Note] InnoDB: Completed initialization of buffer pool
2024-06-18 22:37:47 0 [ERROR] InnoDB: File /Applications/ServBay/db/mariadb/11.5/ib_logfile0 was not found
2024-06-18 22:37:47 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-06-18 22:37:47 0 [Note] InnoDB: Starting shutdown...
2024-06-18 22:37:47 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-06-18 22:37:47 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-06-18 22:37:47 0 [Note] Plugin 'wsrep-provider' is disabled.
2024-06-18 22:37:47 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-06-18 22:37:47 0 [ERROR] Aborting
240618 22:37:48 mysqld_safe mysqld from pid file /Applications/ServBay/tmp/mariadb-11.5.pid ended
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
240618 23:22:28 mysqld_safe Starting mariadbd daemon with databases from /Applications/ServBay/db/mariadb/11.5
2024-06-18 23:22:28 0 [Note] Starting MariaDB 11.5.1-MariaDB-log source revision 65079ece42f383bdeb9b3f913a833a6f0123919d as process 6667
2024-06-18 23:22:28 0 [Warning] Setting lower_case_table_names=2 because file system for /Applications/ServBay/db/mariadb/11.5/ is case insensitive
2024-06-18 23:22:29 0 [Warning] --innodb-file-per-table is deprecated and will be removed in a future release
2024-06-18 23:22:29 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2024-06-18 23:22:29 0 [Note] InnoDB: Number of transaction pools: 1
2024-06-18 23:22:29 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-06-18 23:22:29 0 [Note] InnoDB: Initializing buffer pool, total size = 4.000GiB, chunk size = 64.000MiB
2024-06-18 23:22:29 0 [Note] InnoDB: Completed initialization of buffer pool
2024-06-18 23:22:29 0 [ERROR] InnoDB: Missing FILE_CHECKPOINT(47594) at 47594
2024-06-18 23:22:29 0 [ERROR] InnoDB: Log scan aborted at LSN 47594
2024-06-18 23:22:29 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-06-18 23:22:29 0 [Note] InnoDB: Starting shutdown...
2024-06-18 23:22:29 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-06-18 23:22:29 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-06-18 23:22:29 0 [Note] Plugin 'wsrep-provider' is disabled.
2024-06-18 23:22:29 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-06-18 23:22:29 0 [ERROR] Aborting
240618 23:22:29 mysqld_safe mysqld from pid file /Applications/ServBay/tmp/mariadb-11.5.pid ended
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Solução
Consulte o artigo Modificar Configurações do MariaDB, encontre my.cnf
e siga as etapas detalhadas abaixo:
Adicione
innodb_force_recovery = 6
na seção[mysqld]
domy.cnf
Edite o arquivo de configuração
my.cnf
, encontre[mysqld]
e adicione a seguinte linha:iniinnodb_force_recovery = 6
1Inicie o MariaDB
Use o seguinte comando para iniciar o MariaDB:
bashservbayctl start mariadb 11.5
1Faça backup do MariaDB
Use o comando
mysqldump
para fazer backup de todos os bancos de dados:bashmysqldump -uroot -p --all-databases --opt > /Applications/ServBay/backup/mariadb/11.5/mariadb_backup.sql
1Desative o serviço MariaDB
No painel de administração do ServBay, desative o serviço MariaDB 11.5
Remova
innodb_force_recovery = 6
domy.cnf
Edite o arquivo de configuração
my.cnf
e remova a seguinte linha:iniinnodb_force_recovery = 6
1Renomear o diretório
11.5
Renomeie o diretório de dados do MariaDB
11.5
para11.5.bak
:bashmv /Applications/ServBay/db/mariadb/11.5 /Applications/ServBay/db/mariadb/11.5.bak
1Mudar para outra versão do MariaDB
Mude para o MariaDB 11.5.0 sem problemas, ou outra versão, como 11.3 ou 11.4.
Restaurar o backup do MariaDB
Use o comando
mysql
para restaurar o banco de dados:bashmysql -uroot -p < /Applications/ServBay/backup/mariadb/11.5/mariadb_backup.sql
1
Resumo
MariaDB é um sistema de gerenciamento de banco de dados poderoso e flexível, mas você pode encontrar vários problemas durante o uso. Este artigo descreve como solucionar problemas do serviço MariaDB, incluindo diagnóstico e soluções para problemas comuns. Esperamos que este artigo seja útil para você e, se você tiver qualquer dúvida ou precisar de mais ajuda, sinta-se à vontade para entrar em contato conosco.