Ich führe MySQL 5.0.45 unter OS X 10.6.1 aus und kann MySQL nicht dazu bringen, irgendetwas zu protokollieren. Ich debugge eine Anwendung und muss alle Abfragen und Fehler sehen.
Ich fügte der etc / my.cnf hinzu:
[mysqld]
bind-address = 127.0.0.1
log = /var/log/mysqld.log
log-error = /var/log/mysqld.error.log
Ich habe mit sudo zwei Protokolldateien erstellt, Berechtigungen auf 644 gesetzt und dann MySQL neu gestartet.
Ich verwies auf Wo befindet sich mein MySQL-Protokoll unter OS X? um Fehler zu beheben.
Laufen:
ps auxww|grep [m]ysqld
Kehrt zurück:
_mysql 71 0.0 0.8 646996 15996 ?? S 7:31PM 0:01.10 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/Macintosh-41.local.pid
_mysql 46 0.0 0.0 600336 744 ?? Ss 7:30PM 0:00.03 /bin/sh /usr/local/mysql/bin/mysqld_safe
Und läuft:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
Kehrt zurück:
log /var/log/mysqld.log
log-bin (No default value)
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
log-bin-trust-routine-creators FALSE
log-error /var/log/mysqld.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
Laufen:
mysql> show variables like '%log%';
Kehrt zurück:
+---------------------------------+---------------------------+
| Variable_name | Value |
+---------------------------------+---------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
| expire_logs_days | 0 |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_arch_dir | |
| innodb_log_archive | OFF |
| innodb_log_buffer_size | 1048576 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| log | ON |
| log_bin | OFF |
| log_bin_trust_function_creators | OFF |
| log_error | /var/log/mysqld.error.log |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 4294967295 |
| max_binlog_size | 1073741824 |
| max_relay_log_size | 0 |
| relay_log_purge | ON |
| relay_log_space_limit | 0 |
| sync_binlog | 0 |
+---------------------------------+---------------------------+
26 rows in set (0.00 sec)
Gibt es eine Hilfe, wie ich MySQL zum Protokollieren bringen kann?
Um die Protokolldateien zu aktivieren, müssen Sie sicherstellen, dass sich eine oder mehrere der folgenden Anweisungen im
[mysqld]
Abschnitt der Hauptkonfigurationsdatei Ihres MySQL-Servers (/etc/my.cnf
auf meiner) befinden:Die Protokolle werden standardmäßig in demselben Datenverzeichnis erstellt, in dem sich die Datenbank-Unterverzeichnisse befinden (normalerweise
/var/lib/mysql
), und die Namen der Protokolldateien werden standardmäßig auf den Hostnamen gesetzt, gefolgt von einem Suffix, das mit den oben genannten Direktivennamen übereinstimmt (z. B. -bin, -slow) -abfragen etc).Um Ihre Protokolle in einem anderen Pfad zu speichern oder andere Dateinamen zu verwenden, geben Sie den Basisnamen gemäß der
log=
Direktive und einen beliebigen Pfad und Dateinamen an, z.Sie müssen mysqld neu starten, damit diese Änderungen wirksam werden.
quelle
Die vorherigen Antworten waren veraltet. Sie können die Konfigurationsdatei in
/etc/my.cnf
oder auf Windows anzeigen./mysql/my.ini
.Im
[mysqld]
Abschnitt hinzufügenIn der Dokumentation für Windows wird angegeben, dass die Protokolle in gespeichert werden
ProgramData/MySQL/MySQL Server 5.6/
. Ignoriere es, weil es eine Lüge ist.Außerdem wird die empfohlene
log
Option abgeschrieben und führt zu einem Fehlerangemeldet sein
./mysql/data/host.err
und der Daemon im Stillen sterben. Die richtige Einstellung istgeneral-log
.Auch
log-slow-queries
ist nicht gültig und hat den Fehler verursachtAlso halte dich auch davon fern.
quelle
log=
Option starten und konnte für mein ganzes Leben herausfinden, warum. Endlich jemand mit einer Antwort.general-log
Geben Sie die Befehlszeile von mysql mit Superprivilegien ein und führen Sie Folgendes aus:
In meinem Fall war es egal, ob ich diese Variable bereits auf den gleichen Wert gesetzt hatte! Außerdem habe ich die Berechtigungen und den Eigentümer der Datei geändert, wie in den anderen Beiträgen erwähnt.
quelle
Probieren Sie verschiedene Protokolleinstellungen in my.cnf aus. In meinem Fall brauchte ich:
quelle