Respuestas:
Como mencionó Chealion, hay varias maneras en que su mysql podría haberse instalado. Cada uno de los cuales colocará su directorio de datos y / o registros en diferentes ubicaciones. El siguiente comando le dará a usted (y a nosotros) una buena indicación de dónde buscar.
ps auxww|grep [m]ysqld
# Putting brackets around the first char is a `grep`+`ps` trick
# to keep it from matching its own process.
# Note: For zsh compatibility put quotes around the grep regex
¿Puedes publicar el resultado de ese comando aquí, por favor? El mío se ve así:
_mysql 101 0.0 0.3 112104 13268 ?? S 12:30AM 0:13.20 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql --user=mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
root 76 0.0 0.0 600172 688 ?? S 12:30AM 0:00.02 /bin/sh /opt/local/lib/mysql/bin/mysqld_safe --datadir=/opt/local/var/db/mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
A partir de eso, puede ver que mi datadir es /opt/local/var/db/mysql
(porque lo instalé a través de MacPorts). Llevemos esta lección un poco más lejos ...
Desde la primera línea puedes ver que mi demonio es /opt/local/libexec/mysqld
. Se mysqld
puede invocar con --verbose --help
para obtener una lista de todas las opciones de línea de comandos (¡y aquí está la parte importante / valiosa!) Seguida de los valores que se usarían si iniciara mysqld en lugar de simplemente verificar la salida de ayuda. Los valores son el resultado de su configuración de tiempo de compilación, my.cnf
archivo y cualquier opción de línea de comando. Puedo explotar esta función para averiguar EXACTAMENTE dónde están mis archivos de registro, así:
/opt/local/libexec/mysqld --verbose --help|grep '^log'
El mío se ve así:
log /tmp/mysql.log
log-bin /tmp/mysql-bin
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
log-bin-trust-routine-creators FALSE
log-error /tmp/mysql.error.log
log-isam myisam.log
log-queries-not-using-indexes FALSE
log-short-format FALSE
log-slave-updates FALSE
log-slow-admin-statements FALSE
log-slow-queries (No default value)
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
LO Y HE AQUÍ! ¡Todos los consejos del mundo no me ayudarían porque mi archivo de registro se mantiene en una ubicación completamente no estándar! Mantengo el mío /tmp/
porque en mi computadora portátil, no me importa (en realidad prefiero) perder todos mis registros al reiniciar.
Pongámoslo todo junto y te haremos una línea:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
Ejecute ese comando y obtendrá una lista de todos los registros para su instancia en ejecución de mysql.
¡Disfrutar!
Este Bash-Fu traído a usted de forma gratuita por mi compromiso con todas las cosas de código abierto.
Hay 3 tipos de registros de MySQL / MariaDB:
log_error
para el registro de mensajes de error;general_log_file
para el archivo de registro de consulta general (si está habilitado por general_log
);slow_query_log_file
para el archivo de registro de consulta lenta (si está habilitado por slow_query_log
);Verifique la configuración y la ubicación de los registros anteriores mediante este comando de shell:
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
Por defecto, los registros se almacenan en su directorio de datos, así que verifique la ubicación con este comando de shell:
mysql -se "SELECT @@datadir"
Para ver su registro de errores, puede ejecutar:
sudo tail -f $(mysql -Nse "SELECT @@log_error")
Si tiene habilitado el registro general, para verlo, ejecute:
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
Me tomó un tiempo encontrar esto ... prueba esta ubicación: '
sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
/usr/local/var/mysql/<USERNAME>.local.err
Por defecto, todos los archivos de registro se crean en el directorio de datos mysqld.
Fuente: Documentación MySQL
Puede usar mysqlbinlog
para leer los archivos de registro binarios en / usr / local / mysql / data / (en mi instalación no todos eran binarios). Algunos errores simplemente se dirigen a stderr, por lo que es posible que también desee verificarlos /var/log/system.log
.
Es posible que no pueda acceder a la carpeta que contiene ese registro sin usar sudo
:
sudo ls -l "/usr/local/mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x--- 4 _mysql wheel 136 Jul 10 23:06 data
Si encuentra un archivo de registro grande y cuando usa Time Machine, es posible que desee leer ¿Qué está haciendo Time Machine? en la falla del servidor.
Por defecto, todos los archivos de registro se crean en el directorio de datos mysqld. Desafortunadamente, muchas personas no colocan sus archivos de registro (y programas) en sus ubicaciones típicas. ¡Yo soy uno de ellos!
Realicé esta rutina yo mismo con MySQL hasta que probé Navicat para MySQL . Más tarde me actualicé a Navicat Premium . Ambos tienen una herramienta de monitoreo que contiene una pestaña con todas las variables del servidor en una lista completa. Aquí hay una captura de pantalla con la variable de servidor log_error:
variable de servidor log_error en la herramienta de supervisión del servidor Navicat
También puede establecer las variables allí mismo en la lista.
¡Salud!
/Library/Logs/MySQL.log
mysqladmin variables
ahora es el comando preferido para obtener el valor actual en lugar de usarlo directamentemysqld