Cómo ver los archivos de registro en MySQL?
He leído que Mysql server crea un archivo de registro donde mantiene un registro de todas las actividades, como cuándo y qué consultas se ejecutan.
¿Puede alguien 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 diferentes entradas [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 protegido de alguna manera porque la información confidencial, como los nombres de usuario y la contraseña puede ser registrada [si alguna consulta requiere esto]; por lo que puede ser segura, no es fácil de ver?
Tengo acceso root al sistema, ¿cómo puedo ver el registro?
Cuando intento abrir /var/log/mysql.el registro 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
8 answers
Aquí hay una forma sencilla de habilitarlos. En mysql necesitamos ver a menudo 3 registros que son necesarios en su mayoría durante el desarrollo de cualquier proyecto.
-
The Error Log
. Contiene información sobre los errores que se producen mientras el servidor se está ejecutando (también se inicia y detiene el servidor) The General Query Log
. Este es un registro general de lo que es mysqld haciendo (conectar, desconectar, consultas)The Slow Query Log
. Consiste en sentencias SQL " lentas "(como indicado por su nombre).
Por defecto no hay archivos de registro habilitados en MYSQL. Todos los errores se mostrarán en el syslog.(/var / log / syslog)
Para habilitarlos simplemente siga los pasos a continuación
Paso 1: Vaya a este archivo(/etc/mysql/conf.d / mysqld_safe_syslog.cnf ) y eliminar o comentar esas líneas.
Paso 2: Vaya al archivo de configuración de mysql(/etc/mysql/my.cnf) y añadir las siguientes líneas
Para habilitar el registro de errores agregue lo siguiente
[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log
[mysqld]
log_error=/var/log/mysql/mysql_error.log
To enable general query log add following
general_log_file = /var/log/mysql/mysql.log
general_log = 1
Para habilitar el Registro de Consulta Lenta, agregue lo siguiente
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
Paso3: guarde el archivo y reinicie mysql usando los siguientes comandos
service mysql restart
Para habilitar los registros en tiempo de ejecución, inicie sesión en el cliente mysql (mysql-u root-p ) y proporcione:
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';
Finalmente, una cosa que me gustaría mencionar aquí es Leí esto de un blog. Gracias. Funciona para mí.
Haga clic en aquí para visitar el blog
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-28 19:25:12
Tienes que activar el registro de consultas en mysql.
1.editar /etc / my.cnf
[mysqld] log=/tmp/mysql.log
2.reinicie el equipo o el servicio mysqld
service mysqld restart
3.abra phpmyadmin / cualquier aplicación que use mysql / mysql console y ejecute una consulta
4.cat / tmp / mysql.log (debería ver la consulta)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-28 13:42:17
Los registros de MySQL están determinados por las variables globales tales 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:
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
Para imprimir el valor del registro de errores, ejecute este comando en la terminal:
mysql -e "SELECT @@GLOBAL.log_error"
A lea el contenido del archivo de registro de errores en tiempo real, ejecute:
sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
Nota: Pulse Control-C cuando termine
Cuando el registro general está habilitado, intente:
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
Para usar mysql
con el acceso por contraseña, agregue el parámetro -p
o -pMYPASS
. Para mantenerlo recordado, puede configurarlo en su ~/.my.cnf
, por ejemplo,
[client]
user=root
password=root
Así que será recordado por la próxima vez.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-07 19:52:42
En mi (tengo LÁMPARA instalada) /etc/ mysql/mi.archivo cnf Encontré las siguientes líneas comentadas en la sección [mysqld]:
general_log_file = /var/log/mysql/mysql.log
general_log = 1
Tuve que abrir este archivo como superusuario, con terminal:
sudo geany /etc/mysql/my.cnf
(Prefiero usar Geany en lugar de gedit o VI, no importa)
Acabo de descomentarlos y guardar el archivo y luego restatt mysql con
sudo service mysql restart
Ejecute varias consultas, abra el archivo anterior (/var/log/mysql/mysql.log) y el log estaba allí :)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-28 18:05:19
Del manual de referencia de MySQL:
De forma predeterminada, todos los archivos de registro se crean en el directorio data.
Compruebe la carpeta /var/lib/mysql
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-07 17:00:27
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 por slow-query-log
Usar log_slow_queries
hará que su service mysql restart
o service mysql start
falle
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 10:31:37
shell> mysqladmin flush-logs
shell> mv host_name.err-old backup-directory
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-15 16:40:08
Además de las respuestas anteriores, puede pasar los parámetros de la línea de comandos al proceso mysqld para las opciones de registro en lugar de editar manualmente el archivo conf. Por ejemplo, para habilitar el registro general y especificar un archivo:
mysqld --general-log --general-log-file=/var/log/mysql.general.log
Confirmando otras respuestas anteriores, mysqld --help --verbose
le da los valores del archivo conf( por lo que ejecutar con opciones de línea de comandos general-log es FALSE); mientras que mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
le da:
general_log ON
general_log_file /var/log/mysql.general.log
Use una sintaxis ligeramente más compacta para el registro de errores:
mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-22 11:02:07