He leído que el servidor Mysql crea un archivo de registro donde mantiene un registro de todas las actividades, como cuándo y qué consultas se ejecutan.
¿Alguien puede decirme dónde existe en mi sistema? ¿Cómo puedo leerlo?
Básicamente, necesito hacer una copia de seguridad de la base de datos con una entrada diferente [copia de seguridad entre dos fechas], así que creo que necesito usar el archivo de registro aquí, por eso quiero hacerlo ...
Creo que este registro debe estar asegurado de alguna manera porque se puede registrar información confidencial como nombres de usuario y contraseña [si alguna consulta lo requiere]; entonces, ¿puede estar asegurado y no ser fácilmente visible?
Tengo acceso de root al sistema, ¿cómo puedo ver el registro?
Cuando intento abrir /var/log/mysql.log está vacío.
Este es mi archivo de configuración:
[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
solo si se va a habilitar el registro de errores. Sin embargo, esta respuesta tal como está escrita actualmente parece sugerirla para cualquier registro.slow_query_log = 1;
,slow_query_log_file = /var/log/mysql/mysql-slow-query.log
ylong_query_time = 60
en [mysqld]. Cuando trato de comenzar con su configuración, el servidor se está iniciando, pero lentamente y con errores. Realmente supongo que las versiones difieren y en versiones posteriores Oracle quería unificar los nombres de las variables. Además: en mi humilde opinión, 2 segundos no es tan largo.Debe activar el registro de consultas en mysql.
editar /etc/my.cnf
reinicie la computadora o el servicio mysqld
abra phpmyadmin / cualquier aplicación que use la consola mysql / mysql y ejecute una consulta
cat /tmp/mysql.log
(deberías ver la consulta)fuente
Los registros de MySQL están determinados por variables globales como:
log_error
para el registro de mensajes de error;general_log_file
para el archivo de registro de consulta general (si está habilitado porgeneral_log
);slow_query_log_file
para el archivo de registro de consulta lenta (si está habilitado porslow_query_log
);Para ver la configuración y su ubicación, ejecute este comando de shell:
Para imprimir el valor del registro de errores, ejecute este comando en la terminal:
Para leer el contenido del archivo de registro de errores en tiempo real, ejecute:
Nota: Hit Control- Ccuando termine
Cuando el registro general está habilitado, intente:
Para usar
mysql
con el acceso de contraseña, agregue-p
o-pMYPASS
parámetro. Para mantenerlo recordado, se puede configurar en su~/.my.cnf
, por ejemplo,Entonces será recordado por la próxima vez.
fuente
En mi (tengo instalado LAMP) / etc / mysql /my.cnf, encontré las siguientes líneas comentadas en la sección [mysqld]:
Tuve que abrir este archivo como superusuario, con terminal:
(Prefiero usar Geany en lugar de gedit o VI, no importa)
Acabo de comentarlos y guardar el archivo y luego reiniciar mysql con
Ejecute varias consultas, abra el archivo anterior (/var/log/mysql/mysql.log) y el registro estaba allí :)
fuente
Del manual de referencia de MySQL:
Comprobar
/var/lib/mysql
carpetafuente
sudo -s
luego intente ir a la carpeta mysql.Para complementar la respuesta de loyola , vale la pena mencionar que a partir de MySQL 5.1
log_slow_queries
está en desuso y se reemplaza conslow-query-log
El uso
log_slow_queries
hará que suservice mysql restart
oservice mysql start
fallefuente
fuente
Además de las respuestas anteriores, puede pasar los parámetros de la línea de comandos al proceso mysqld para registrar opciones en lugar de editar manualmente su archivo conf. Por ejemplo, para habilitar el registro general y especificar un archivo:
Confirmando otras respuestas anteriores,
mysqld --help --verbose
le da los valores del archivo conf (por lo tanto, ejecutar con opciones de línea de comando general-log es FALSO); mientras quemysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
da:Utilice una sintaxis un poco más compacta para el registro de errores:
fuente