Notas de estudo do MySQL. O uso de registros do MySQL

Visão geral do registro do mysql

O log do MySQL registra a operação diária e as informações de erro do banco de dados.O MySQL possui diferentes tipos de arquivos de log, divididos em quatro categorias: log de erros, log binário, log de consultas e log de consultas lentas. Os usuários podem consultar o status de execução, operação ou registros de erros do MySQL a partir do log para resolver o problema.
Obviamente, iniciar a função de log também reduzirá o desempenho do banco de dados MySQL. Por exemplo, em um sistema de banco de dados MySQL com consultas muito complicadas, se você ativar o log de consulta geral e o log de consulta lenta, o banco de dados MySQL gastará um muito tempo gravando o log, o que ocupará muito tempo. espaço em disco.

Log de erros

Ele registra os problemas que ocorrem quando o serviço MySQL inicia, executa ou interrompe o serviço. O log de erros no mysql é muito útil.Quando ocorrer um erro ao iniciar ou parar o MySQL, o log de erros será registrado, de forma que, se verificarmos o log de erros, possamos encontrar a chave do problema.

Registro de erro de inicialização e configuração

Por padrão, o log de erros será gravado no diretório de dados do banco de dados. Se não houver um nome de arquivo de configuração, o nome do arquivo será o nome do host. Err
check my
Insira a descrição da imagem aqui
computer name is YING-huo520
através do comando: show variables like'log_error% '; ver

mysql> show variables like 'log_error';
+---------------+----------------------------------------------------------------------+
| Variable_name | Value                                                                |
+---------------+----------------------------------------------------------------------+
| log_error     | E:\software\phpstudy_pro\Extensions\MySQL5.1.60\data\YING-huo520.err |
+---------------+----------------------------------------------------------------------+
1 row in set (0.00 sec)

Encontre o diretório do meu arquivo e abra o arquivo.O
Insira a descrição da imagem aqui
início e a parada do log de erros e o nome do arquivo especificado podem ser modificados no arquivo my.ini.
O item de configuração do log de erros é log-error. Configure log-error em [mysqld] para iniciar o log de erros.

[mysqld]
log-error=[path/[file_name]]

Onde path é o caminho do diretório onde o log está localizado e file_name é o nome do arquivo de log. Após a modificação, o serviço MySQL deve ser reiniciado.

Excluir log de erros

O log de erros do mysql é armazenado no sistema de arquivos na forma de texto e pode ser excluído diretamente.

Para versões de flush logs anteriores a mysql5.5.7, você pode renomear o arquivo de log de erros para filename.err_old e criar um novo arquivo de log, mas após mysql5.5.7, ele apenas reabre o arquivo de log e não faz backup e criação de log.
Efetue login no banco de dados mysql no cliente e execute os logs de liberação para excluir o log de erros.

Log binário

O log binário registra principalmente alterações no banco de dados MySQL, incluindo todos os dados atualizados ou dados potencialmente atualizados, e também contém informações sobre o tempo de execução de cada instrução que atualiza o banco de dados, mas não contém instruções que não modificaram nenhum dado. O principal objetivo de usar o log binário é recuperar o banco de dados o máximo possível.

Inicie e configure o log binário

Por padrão, o log binário está ativado.Você pode iniciar e definir o log binário modificando o arquivo de configuração mysql.
O arquivo my.ini foi modificado para

log-bin=path/filename

path é o caminho do log, filename é o nome do arquivo
expire_logs_days define a hora em que o MySQL limpa os dias anteriores, ou seja, o número de dias que o log binário é excluído automaticamente e o padrão é 0.
max_binlog_size define o limite de tamanho de um único arquivo.Se o conteúdo escrito no log binário exceder o valor fornecido, o arquivo atual será fechado e um novo arquivo de log será reaberto.
Adicione no grupo MySQLd na configuração my.ini

[mysqld]
log-bin
expire_logs_days=10
max_binlog_size=100M

Reinicie o mysql após a modificação.
Use o comando para verificar se o log binário está habilitado. Pode-se ver que log_bin está ligado e foi ligado

mysql> show variables like 'log_%';
+---------------------------------+----------------------------------------------------------------------+
| Variable_name                   | Value                                                                |
+---------------------------------+----------------------------------------------------------------------+
| log_bin                         | ON                                                                   |
| log_bin_trust_function_creators | OFF                                                                  |
| log_bin_trust_routine_creators  | OFF                                                                  |
| log_error                       | E:\software\phpstudy_pro\Extensions\MySQL5.1.60\data\YING-huo520.err |
| log_output                      | FILE                                                                 |
| log_queries_not_using_indexes   | OFF                                                                  |
| log_slave_updates               | OFF                                                                  |
| log_slow_queries                | OFF                                                                  |
| log_warnings                    | 1                                                                    |
+---------------------------------+----------------------------------------------------------------------+
9 rows in set (0.00 sec)

Ver log binário

Você pode usar show binarylog para ver o número de arquivos binários.Você
também pode usar mysqlbinlog para ver seu conteúdo.

C:\Users\acer>mysqlbinlog E:/software/phpstudy_pro/Extensions/MySQL5.1.60\data/mysql-bin.000001
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
# at 4
#201031 14:32:16 server id 1  end_log_pos 106   Start: binlog v 4, server v 5.1.60-community-log created 201031 14:32:16 at startup
# Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.
ROLLBACK;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

Excluir log binário

1. Use a instrução RESET MASTER para excluir todos os arquivos binários.
Formato da sintaxe: Depois de RESET MASTER;
executar esta instrução, todos os logs binários serão excluídos e os logs binários serão recriados. Os novos arquivos de log serão numerados a partir de 000001.
2. Use a instrução PURGE MASTER LOGS para deletar o arquivo de log especificado.
Formato da sintaxe: o PURGE{MASTER|BINARY} LOGS TO 'log_name
PURGE{MASTER|BINARY} LOGS BEFORE 'date'
primeiro é especificar o nome do arquivo, deletar o log binário especificado menor que o nome do arquivo especificado, o segundo é deletar o arquivo binário antes do especificado encontro

mysql> PURGE MASTER LOGS TO "mysql-bin.000030";
Query OK, 0 rows affected (2.23 sec)

mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000030 |       106 |
| mysql-bin.000031 |       106 |
| mysql-bin.000032 |       106 |
| mysql-bin.000033 |       106 |
| mysql-bin.000034 |       106 |
| mysql-bin.000035 |       106 |
| mysql-bin.000036 |       106 |
| mysql-bin.000037 |       106 |
| mysql-bin.000038 |       106 |
| mysql-bin.000039 |       106 |
| mysql-bin.000040 |       106 |
| mysql-bin.000041 |       149 |
| mysql-bin.000042 |       149 |
| mysql-bin.000043 |       149 |
| mysql-bin.000044 |       149 |
| mysql-bin.000045 |       106 |
| mysql-bin.000046 |       106 |
| mysql-bin.000047 |       106 |
| mysql-bin.000048 |       106 |
| mysql-bin.000049 |       106 |
| mysql-bin.000050 |       106 |
+------------------+-----------+
21 rows in set (0.00 sec)
mysql> PURGE MASTER LOGS BEFORE "20201110";
Query OK, 0 rows affected (0.00 sec)

Use o log binário para restaurar o banco de dados

Este método de recuperação é muito eficaz.Quando a tabela de dados é excluída devido a uma operação acidental, você pode usar este método para recuperar os dados em um determinado momento.
Formato de sintaxe: os mysqlbinlog option filename |mysql -uuser -ppass
parâmetros de opção são frequentemente: –start-date, –stop-date, –start-position, –stop-position, por
exemplo:mysqlbinlog --stop-date="2020-11-10 18:16:35 filename |mysql -uuser -ppass

Pare temporariamente o log binário

Quando o mysql abre o log binário, o mysql continuará gravando o log binário.Como parar esta função? Da mesma forma, ele pode ser interrompido modificando o arquivo de configuração, mas precisa ser reiniciado e o log binário pode ser interrompido temporariamente ou iniciado pela instrução SET_LOG_BIN

SET sql_log_bin=0	停止
SET sql_log_bin=1	开启

Registro de consulta geral

Este log registra todas as operações do usuário, incluindo iniciar e fechar serviços, executar consultas e outras instruções. O
MySQL não abre o log por padrão. Use variáveis ​​de exibição como '% general%'; você pode ver o status do log

Iniciar o registro da consulta

mysql> show variables like '%general%';
+------------------+----------------------------------------------------------------------+
| Variable_name    | Value                                                                |
+------------------+----------------------------------------------------------------------+
| general_log      | OFF                                                                  |
| general_log_file | E:\software\phpstudy_pro\Extensions\MySQL5.1.60\data\YING-huo520.log |
+------------------+----------------------------------------------------------------------+
2 rows in set (0.00 sec)

Ative a sintaxe de log: defina @@ global.general_log = 1;

mysql> set @@global.general_log=1;
Query OK, 0 rows affected (0.07 sec)

mysql> show variables like '%general%';
+------------------+----------------------------------------------------------------------+
| Variable_name    | Value                                                                |
+------------------+----------------------------------------------------------------------+
| general_log      | ON                                                                   |
| general_log_file | E:\software\phpstudy_pro\Extensions\MySQL5.1.60\data\YING-huo520.log |
+------------------+----------------------------------------------------------------------+
2 rows in set (0.00 sec)

Ele foi aberto, basta alterar 1 para 0 para fechar o log

Ver log de consulta

Abra o arquivo E: \ software \ phpstudy_pro \ Extensions \ MySQL5.1.60 \ data \ YING-huo520.log
Insira a descrição da imagem aqui

Excluir log de consulta

Encontre o diretório e exclua o arquivo com o sufixo .log e, em seguida, crie um novo arquivo de log de consulta na linha de comando

mysqladmin -u root -p flush-logs

Registro de consulta lenta

O log de consulta lenta é um log que registra o tempo de consulta excedendo o tempo especificado, o que é conveniente para descobrir as sentenças com longo tempo de execução e baixa eficiência de execução, o que é conveniente para posterior otimização.

Habilitar registro de consulta lenta

O mesmo é fechado por padrão, modifique a configuração do my.ini para abrir

[mysqld]
log-slow-queries=path/filename
long_query_time=n

n é o tempo em segundos, o padrão é 10 segundos

Excluir log de consulta lenta

O método de exclusão é o mesmo que excluir o log de consulta geral. Primeiro exclua o arquivo e, em seguida, use o mesmo comando para reconstruir o novo arquivo de log

Acho que você gosta

Origin blog.csdn.net/qq_44862120/article/details/109621836
Recomendado
Clasificación