Revisé / var / log y / usr / local / mysql y parece que no puedo encontrar el registro. Estoy tratando de solucionar un error al establecer una conexión de base de datos con una función php.
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.
mysqladmin variables
ahora es el comando preferido para obtener el valor actual en lugar de usarlo directamentemysqld
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 porgeneral_log
);slow_query_log_file
para el archivo de registro de consulta lenta (si está habilitado porslow_query_log
);Verifique la configuración y la ubicación de los registros anteriores mediante este comando de shell:
Por defecto, los registros se almacenan en su directorio de datos, así que verifique la ubicación con este comando de shell:
Para ver su registro de errores, puede ejecutar:
Si tiene habilitado el registro general, para verlo, ejecute:
fuente
Otra forma de encontrar esta información es usarla
lsof
.Use Activity Monitor para encontrar el PID de
mysql
, o useps -ef | grep mysqld
para encontrarlo.sudo lsof -p PID_OF_MYSQLD
y ver qué archivos tiene abierto MySQL.fuente
Me tomó un tiempo encontrar esto ... prueba esta ubicación: '
fuente
/usr/local/var/mysql/<USERNAME>.local.err
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
.fuente
Es posible que no pueda acceder a la carpeta que contiene ese registro sin usar
sudo
: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.
fuente
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!
fuente
/Library/Logs/MySQL.log
fuente