soporta - seleccionar varios campos de una tabla en mysql
¿Cómo ver archivos de registro en MySQL? (8)
Además de las respuestas anteriores, puede pasar parámetros de línea de comando al proceso mysqld para las opciones de registro en lugar de editar manualmente su 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 arriba, mysqld --help --verbose
le da los valores del archivo conf (por lo tanto, ejecutar con opciones de línea de comando general-log es FALSE); mientras que mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
da:
general_log ON
general_log_file /var/log/mysql.general.log
Use una sintaxis un poco 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
He leído que el servidor Mysql crea un archivo de registro donde guarda un registro de todas las actividades, como cuándo y qué consultas ejecutar.
¿Alguien puede decirme dónde está 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í, es por eso que quiero hacerlo ...
Creo que este registro debe asegurarse de alguna manera porque la información sensible como los nombres de usuario y la contraseña pueden registrarse [si alguna consulta lo requiere]; entonces, ¿puede ser asegurado, no 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
Aquí hay una forma simple de habilitarlos. En mysql tenemos que ver a menudo 3 registros que se necesitan principalmente 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 el servidor se inicia y se detiene)The General Query Log
. Este es un registro general de lo que está haciendo mysqld (conectar, desconectar, consultar)The Slow Query Log
. Consistst consiste en declaraciones SQL "lentas" (como lo indica su nombre).
Por defecto, no hay archivos de registro habilitados en MYSQL. Todos los errores se mostrarán en el registro del sistema. (/ Var / log / syslog)
Para habilitarlos solo sigue los pasos a continuación
Paso 1: vaya a este archivo ( /etc/mysql/conf.d/mysqld_safe_syslog.cnf ) y elimine o comente esa línea.
paso2: ve al archivo mysql conf (/etc/mysql/my.cnf) y agrega las siguientes líneas
Para habilitar el registro de errores, agregue los siguientes
[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log
[mysqld]
log_error=/var/log/mysql/mysql_error.log
Para habilitar el registro general de consultas, agregue el siguiente
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: guarda el archivo y reinicia 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 que leí esto de un blog . Gracias. Esto funciona para mi.
Haga clic here para visitar el blog
Del manual de referencia de MySQL:
Por defecto, todos los archivos de registro se crean en el directorio de datos.
Verifique la carpeta /var/lib/mysql
.
En mi archivo (I have LAMP installed) / etc / mysql / my.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 comentarlos y guardar el archivo, luego restatt mysql con
sudo service mysql restart
Ejecuta varias consultas, abre el archivo superior (/var/log/mysql/mysql.log) y el registro estaba allí :)
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 consultas lento (si lo habilitóslow_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"
Para leer el contenido del archivo de registro de errores en tiempo real, ejecute:
sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
Nota: Hit 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 de contraseña, agregue el parámetro -p
o -pMYPASS
. Para mantenerlo recordado, puede configurarlo en su ~/.my.cnf
, por ej.
[client]
user=root
password=root
Entonces será recordado por la próxima vez.
Para complementar la respuesta de log_slow_queries
vale la pena mencionar que a partir de MySQL 5.1, log_slow_queries
está en desuso y se reemplaza por slow-query-log
El uso de log_slow_queries
hará que el service mysql restart
o el service mysql start
a fallar.
Tienes que activar el registro de consultas en mysql.
1.edit /etc/my.cnf
[mysqld] log=/tmp/mysql.log
2. reinicie la computadora o el servicio mysqld
service mysqld restart
3. Abra phpmyadmin / cualquier aplicación que use la consola mysql / mysql y ejecute una consulta
4.cat /tmp/mysql.log (debería ver la consulta)
shell> mysqladmin flush-logs
shell> mv host_name.err-old backup-directory