Zoeken…


Een overzicht

  • Algemeen logboek - alle vragen - zie VARIABLE general_log
  • Langzaam logboek - zoekopdrachten zijn langzamer dan long_query_time - slow_query_log_file
  • Binlog - voor replicatie en back-up - log_bin_basename
  • Relay-logboek - ook voor replicatie
  • algemene fouten - mysqld.err
  • start / stop - mysql.log (niet erg interessant) - log_error
  • InnoDB redo log - iblog *

Zie de variabelen basedir en datadir voor standaardlocatie voor veel logs

Sommige logboeken worden door andere VARIABLES in- of uitgeschakeld. Sommige worden naar een bestand of naar een tabel geschreven.

(Opmerking voor reviewers: dit heeft meer details en meer uitleg nodig.)

Documenters : geef de standaardlocatie en -naam op voor elk logboektype, voor zowel Windows als * nix. (Of minstens zoveel als je kunt.)

Langzaam zoeklogboek

Het trage long_query_time bestaat uit long_query_time voor query's die tot het long_query_time van long_query_time seconden long_query_time . Bijvoorbeeld tot 10 seconden om te voltooien. Geef het volgende op om de momenteel ingestelde tijdsdrempel te bekijken:

SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+

Het kan worden ingesteld als een GLOBAL-variabele, in het bestand my.cnf of my.ini . Of het kan worden ingesteld door de verbinding, hoewel dit ongebruikelijk is. De waarde kan worden ingesteld tussen 0 en 10 (seconden). Welke waarde te gebruiken?

  • 10 is zo hoog dat het bijna nutteloos is;
  • 2 is een compromis;
  • 0,5 en andere fracties zijn mogelijk;
  • 0 legt alles vast; dit kan de schijf gevaarlijk snel vullen, maar kan erg handig zijn.

Het vastleggen van trage zoekopdrachten is in- of uitgeschakeld. En het bestand dat is aangemeld, wordt ook opgegeven. Hieronder staan deze concepten:

SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off)
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir
SELECT @@datadir; -- to see current value of the location for capture file

SET GLOBAL slow_query_log=0; -- Turn Off
-- make a backup of the Slow Query Log capture file. Then delete it.
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created)

Voor meer informatie, zie de MySQL Manual Page The Slow Query Log

Opmerking: de bovenstaande informatie over het in- / uitschakelen van de slowlog is gewijzigd in 5.6 (?); oudere versie had een ander mechanisme.

De "beste" manier om te zien wat uw systeem vertraagt:

long_query_time=...
turn on the slowlog
run for a few hours
turn off the slowlog (or raise the cutoff)
run pt-query-digest to find the 'worst' couple of queries.  Or mysqldumpslow -s t

Algemeen querylogboek

Het algemene querylogboek bevat een lijst met algemene informatie van clientverbindingen, verbroken verbindingen en query's. Het is van onschatbare waarde voor het debuggen, maar het vormt een belemmering voor de uitvoering (citaat?).

Hieronder ziet u een voorbeeldweergave van een algemeen querylogboek:

voer hier de afbeeldingsbeschrijving in

Bepalen of het algemene logboek momenteel wordt vastgelegd:

SELECT @@general_log; -- 1 = Capture is active; 0 = It is not.

Om de bestandsnaam van het opnamebestand te bepalen:

SELECT @@general_log_file; -- Full path to capture file

Als het volledige pad naar het bestand niet wordt weergegeven, bestaat het bestand in de datadir .

Windows-voorbeeld:

+----------------------------------------------------------+
| @@general_log_file                                       |
+----------------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Data\GuySmiley.log |
+----------------------------------------------------------+

Linux:

+-----------------------------------+
| @@general_log_file                |
+-----------------------------------+
| /var/lib/mysql/ip-ww-xx-yy-zz.log |
+-----------------------------------+

Wanneer wijzigingen worden aangebracht in de GLOBAL-variabele general_log_file , wordt het nieuwe logboek opgeslagen in de datadir . Het volledige pad kan echter niet langer worden weerspiegeld door de variabele te onderzoeken.

In het geval van geen invoer voor general_log_file in het configuratiebestand, wordt dit standaard ingesteld op @@hostname .log in de datadir .

Het beste is om het vastleggen uit te schakelen. Sla het logbestand op in een back-upmap met een bestandsnaam die de begintijd / einddatum van de opname aangeeft. Voorafgaande bestand verwijderen Als een bestandssysteem beweging kwam niet bij van dat bestand. Stel een nieuwe bestandsnaam in voor het logboekbestand en zet vastleggen AAN (alles hieronder weergegeven). Best practices omvatten ook een zorgvuldige bepaling of u zelfs op dit moment wilt vastleggen. Normaal gesproken is vastleggen alleen ingeschakeld voor foutopsporing.

Een typische bestandssysteembestandsnaam voor een geback-upt logboek kan zijn:

/LogBackup/GeneralLog_20160802_1520_to_20160802_1815.log

waarbij de datum en tijd deel uitmaken van de bestandsnaam als een bereik.

Voor Windows, let op de volgende volgorde met instellingswijzigingen.

SELECT @@general_log; -- 0. Not being captured
SELECT @@general_log_file; -- C:\ProgramData\MySQL\MySQL Server 5.6\Data\GuySmiley.log
SELECT @@datadir; -- C:\ProgramData\MySQL\MySQL Server 5.7\Data\
SET GLOBAL general_log_file='GeneralLogBegin_20160803_1420.log'; -- datetime clue
SET GLOBAL general_log=1; -- Turns on actual log capture. File is created under `datadir`
SET GLOBAL general_log=0; -- Turn logging off

Linux is vergelijkbaar. Deze zouden dynamische veranderingen vertegenwoordigen. Elke herstart van de server zou de instellingen van het configuratiebestand ophalen.

Overweeg voor het configuratiebestand de volgende relevante variabele instellingen:

[mysqld]
general_log_file = /path/to/currentquery.log
general_log      = 1

Bovendien kan de variabele log_output worden geconfigureerd voor TABLE uitvoer, niet alleen FILE . Zie daarvoor Bestemmingen .

Raadpleeg de MySQL-handleidingpagina Het algemene querylogboek .

Foutenlogboek

Het foutenlogboek is gevuld met start- en stopinformatie en kritieke gebeurtenissen die de server heeft ondervonden.

Het volgende is een voorbeeld van de inhoud:

voer hier de afbeeldingsbeschrijving in

De variabele log_error bevat het pad naar het logbestand voor foutregistratie.

Bij afwezigheid van een invoer in het configuratiebestand voor log_error , zal het systeem zijn waarden standaard instellen op @@hostname .err in de datadir . Merk op dat log_error geen dynamische variabele is. Als zodanig worden wijzigingen doorgevoerd via een cnf- of ini-bestandswijziging en een server opnieuw opgestart (of door "Het foutenlogbestand doorspoelen en hernoemen" te zien in de koppeling Handmatige pagina onderaan hier).

Loggen kan niet worden uitgeschakeld voor fouten. Ze zijn belangrijk voor de gezondheid van het systeem terwijl u problemen oplost. Bovendien zijn vermeldingen zeldzaam in vergelijking met het algemene querylogboek.

De GLOBAL variabele log_warnings stelt het niveau voor verbosity in dat varieert per serverversie. Het volgende fragment illustreert:

SELECT @@log_warnings; -- make a note of your prior setting
SET GLOBAL log_warnings=2; -- setting above 1 increases output (see server version)

log_warnings zoals hierboven te zien is een dynamische variabele.

Wijzigingen in configuratiebestanden in cnf en ini bestanden kunnen er als volgt uitzien.

[mysqld]
log_error        = /path/to/CurrentError.log
log_warnings     = 2

MySQL 5.7.2 breidde de verbosity van het waarschuwingsniveau uit naar 3 en voegde de GLOBAL log_error_verbosity . Nogmaals, het werd geïntroduceerd in 5.7.2. Het kan dynamisch worden ingesteld en als een variabele worden gecontroleerd of worden ingesteld via cnf of ini configuratiebestandinstellingen.

Vanaf MySQL 5.7.2:

[mysqld]
log_error           = /path/to/CurrentError.log
log_warnings        = 2
log_error_verbosity = 3 

Zie de MySQL-handleiding Page getiteld De Error Log speciaal voor Vlissingen en hernoemen Foutenlog bestand en haar Foutenlog Verbosity sectie met versies met betrekking tot log_warnings en error_log_verbosity .



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow