Eu li que o servidor Mysql cria um arquivo de log em que mantém um registro de todas as atividades - como quando e quais consultas são executadas.
Alguém pode me dizer onde ele existe no meu sistema? Como posso ler?
Basicamente, preciso fazer backup do banco de dados com entradas diferentes [backup entre duas datas], então acho que preciso usar o arquivo de log aqui, é por isso que quero fazê-lo ...
Eu acho que esse log deve ser protegido de alguma forma, porque informações confidenciais como nomes de usuário e senha podem ser registradas [se alguma consulta exigir isso]; então, pode ser protegido, não pode ser facilmente visto?
Eu tenho acesso root ao sistema, como posso ver o log?
Quando tento abrir /var/log/mysql.log, ele está vazio.
Este é o meu arquivo de configuração:
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
log = /var/log/mysql/mysql.log
binlog-do-db=zero
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
general_log_file = /var/log/mysql/mysql.log
general_log = 1
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
apenas se o log de erros deve ser ativado. No entanto, essa resposta, como está escrita atualmente, parece sugeri-la para qualquer log.slow_query_log = 1;
,slow_query_log_file = /var/log/mysql/mysql-slow-query.log
elong_query_time = 60
sob [mysqld]. Quando tento iniciar com sua configuração, o servidor está iniciando, mas lentamente e com erros. Eu realmente acho que as versões diferem e nas versões posteriores o oracle queria unificar os nomes das variáveis. Além disso: IMHO 2 segundos não é tão longo.Você precisa ativar o log de consultas no mysql.
editar /etc/my.cnf
reinicie o computador ou o serviço mysqld
abra phpmyadmin / qualquer aplicativo que use o mysql / mysql console e execute uma consulta
cat /tmp/mysql.log
(você deve ver a consulta)fonte
Os logs do MySQL são determinados pelas variáveis globais, como:
log_error
para o log de mensagens de erro;general_log_file
para o arquivo de log de consulta geral (se ativado porgeneral_log
);slow_query_log_file
para o arquivo de log de consulta lenta (se ativado porslow_query_log
);Para ver as configurações e sua localização, execute este comando shell:
Para imprimir o valor do log de erros, execute este comando no terminal:
Para ler o conteúdo do arquivo de log de erros em tempo real, execute:
Nota: Hit Control- Cquando terminar
Quando o log geral estiver ativado, tente:
Para usar
mysql
com o acesso por senha, adicione-p
ou-pMYPASS
parâmetro. Para mantê-lo lembrado, você pode configurá-lo no seu~/.my.cnf
, por exemploEntão será lembrado pela próxima vez.
fonte
No meu (eu tenho o LAMP instalado) / etc / mysql /my.cnf, achei as seguintes linhas comentadas na seção [mysqld]:
Eu tive que abrir este arquivo como superusuário, com terminal:
(Prefiro usar Geany em vez de gedit ou VI, não importa)
Eu apenas os descomentei e salve o arquivo, em seguida, reinstale o mysql com
Execute várias consultas, abra o arquivo acima (/var/log/mysql/mysql.log) e o log estava lá :)
fonte
No manual de referência do MySQL:
Verifique a
/var/lib/mysql
pasta.fonte
sudo -s
então tente ir para a pasta mysql.Para complementar a resposta do loyola , vale ressaltar que a partir do MySQL 5.1
log_slow_queries
está obsoleta e é substituída porslow-query-log
O uso
log_slow_queries
fará com que vocêservice mysql restart
ouservice mysql start
falhefonte
fonte
Além das respostas acima, você pode passar parâmetros de linha de comando para o processo mysqld para opções de registro em vez de editar manualmente seu arquivo conf. Por exemplo, para ativar o log geral e especificar um arquivo:
A confirmação de outras respostas acima
mysqld --help --verbose
fornece os valores do arquivo conf (a execução das opções da linha de comandos general-log é FALSE); considerando quemysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
:Use uma sintaxe um pouco mais compacta para o log de erros:
fonte