¿Dónde está mi registro de mysql en OS X?

Pregunta:

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.

Respuesta:

Como mencionó Chealion, hay varias formas de instalar su mysql. 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

¿Puede 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 directorio de datos 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, puede ver que mi demonio es /opt/local/libexec/mysqld . Se puede llamar a mysqld con --verbose --help para obtener una lista de todas las opciones de la línea de comandos (¡y aquí está la parte importante / valiosa!) Seguida de los valores que se usarían si estuviera iniciando mysqld en lugar de simplemente marcar el ayudar a la salida. Los valores son el resultado de su configuración de tiempo de compilación, archivo my.cnf y cualquier opción de línea de comando. Puedo aprovechar 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 iban a ayudar porque mi archivo de registro se guarda en una ubicación completamente no estándar! Mantengo el mío en /tmp/ porque en mi computadora portátil, no me importa (en realidad prefiero) perder todos mis registros al reiniciar.

Pongamos todo junto y te hagamos un delineador:

$(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 te lo trajo gratis gracias a mi compromiso con todo lo relacionado con el código abierto.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım