Dov'è il mio mysql log su OS X?

Ho controllato / var / log e / usr / local / mysql e non riesco a trovare il log. Sto cercando di risolvere un errore che crea una connessione di database con una function php.

  • Accesso al server MySQL tramite VPN in python
  • Gestione della memory LAMP (CentOS)
  • MySQL che abilita il log di query solo per l'utente root
  • Multiple siti web su più server - separare mysql o less
  • AWS RDS MySQL connessione remota estremamente lenta
  • Perché i pacchetti obsoleti installati da yum su CentOS? (in particolare PHP 5.1) Come risolvere?
  • Creare uno slave MySQL da un altro slave, ma indicarlo al master
  • Qual è la pratica migliore per eseguire il dump di MySQL, crittografarla e poi spingerla a s3?
  • 7 Solutions collect form web for “Dov'è il mio mysql log su OS X?”

    Come ha detto Chealion, ci sono diversi modi in cui il tuo mysql potrebbe essere stato installato. Ognuno dei quali metterà i tuoi dati dir e / o registra in posizioni diverse. Il command seguente vi darà (e noi) una buona indicazione di where guardare.

    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 

    Posso submit il risultato di quel command qui per favore? La mia sembra così:

     _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 

    Da ciò si può vedere che il mio datadir è /opt/local/var/db/mysql (perché ho installato tramite MacPorts). Prendiamo questa lezione un po 'di più …

    Dalla prima row potete vedere che il mio demone è /opt/local/libexec/mysqld . Il mysqld può essere chiamato con --verbose --help per get un elenco di tutte le opzioni della row di command (e qui è la parte importnte / preziosa!) Seguito dai valori che verrebbero utilizzati se si stava lanciando mysqld invece di controllare aiuto di output. I valori sono il risultato della configuration del tempo di compilazione, del file my.cnf e di tutte le opzioni della row di command. Posso sfruttare questa function per scoprire esattamente where sono i miei file di registro, così:

     /opt/local/libexec/mysqld --verbose --help|grep '^log' 

    La mia sembra così:

     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 AND BEHOLD! tutto il consiglio al mondo non mi ha aiutato perché il mio file di registro è tenuto in una posizione completamente non standard! Tieno il mio in /tmp/ perché sul mio computer porttile, non mi import (in realtà preferisco) per perdere tutti i miei registri al riavvio.

    Mettiamo tutto insieme e ti facciamo un oneliner:

     $(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log' 

    Esegui questo command e otterrai un elenco di tutti i registri per l'istanza corrente di mysql.

    Godere!

    Questo Bash-Fu ti ha portto gratuitamente dal mio impegno a tutte le cose Open Source.

    Un altro modo per trovare queste informazioni è quello di utilizzare lsof .

    1. Utilizza Monitor di attività per trovare il PID di mysql , o utilizzare ps -ef | grep mysqld ps -ef | grep mysqld per trovarlo.

    2. sudo lsof -p PID_OF_MYSQLD e vedere quali file MySQL è aperto.

    Esistono 3 tipi di registri MySQL / MariaDB:

    • log_error per il registro dei messaggi di errore;
    • general_log_file per il file di log di query generale (se abilitato da general_log );
    • slow_query_log_file per il file di registro lento di query (se triggersto da slow_query_log );

    Controllare le impostazioni e la posizione dei registri superiori mediante questo command shell:

     mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log 

    Per impostazione predefinita, i registri vengono memorizzati nel dir di dati, quindi controllare la posizione con questo command shell:

     mysql -se "SELECT @@datadir" 

    Per visualizzare il tuo registro di errori, è ansible eseguire:

     sudo tail -f $(mysql -Nse "SELECT @@log_error") 

    Se hai abilitato il log generale, per visualizzarlo, eseguire:

     sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)") 

    Per impostazione predefinita, tutti i file di registro vengono creati nella directory dei dati mysqld.

    Origine: Documentazione MySQL

    È ansible utilizzare mysqlbinlog per leggere i file di log binari in / usr / local / mysql / data / (nella mia installazione non tutti erano binari). Alcuni errori vengono semplicemente indirizzati a stderr, quindi è ansible verificare anche /var/log/system.log .

    Mi sono preso un po 'per trovare questo … provare questa posizione:'

     sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err 

    /Library/Logs/MySQL.log

    La cartella che detiene il registro potrebbe non essere accessibile a voi senza utilizzare sudo :

     sudo ls -l "/usr/local/mysql-5.0.51a-osx10.5-x86" [..] drwxr-x--- 4 _mysql wheel 136 Jul 10 23:06 data 

    Se riesci a trovare un grande file di registro e quando stai utilizzando Time Machine, puoi leggere What is Time Machine? sul guasto del server.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.