
Ich habe ein Problem mit MySQL unter FreeBSD.
Es erstellt alle 20 Minuten eine Menge 1 GB großer Binärdateien und füllt den freien Speicherplatz schnell.
-rw-rw---- 1 mysql mysql 1073741982 2013-09-14 18:26 mysql-bin.000174
-rw-rw---- 1 mysql mysql 1073741890 2013-09-14 18:42 mysql-bin.000175
-rw-rw---- 1 mysql mysql 1073741988 2013-09-14 18:59 mysql-bin.000176
-rw-rw---- 1 mysql mysql 1073741964 2013-09-14 19:15 mysql-bin.000177
-rw-rw---- 1 mysql mysql 1073741974 2013-09-14 19:29 mysql-bin.000178
-rw-rw---- 1 mysql mysql 1073741923 2013-09-14 19:46 mysql-bin.000179
-rw-rw---- 1 mysql mysql 577143852 2013-09-14 19:59 mysql-bin.000180
Es geschieht ohne Internetaktivität von Benutzern. Ich habe max_binlog_file=526870912
in my.cnf
Ich habe versucht,
freebsd# mysql -u root -p
mysql> flush logs;
mysql> flush master;
Als Ergebnis werden alle mysql-bin-Dateien gelöscht und die Zählung beginnt bei mysql-bin.000001.
Ich shutdown -r now
verwende dann FreeBSD (mysql_enable="YES" in rc.conf). MySQL funktioniert, beginnt aber wieder, alle 20 Minuten 1 GB große Binärdateien zu erstellen.
ANHANG 1
Mysql funktioniert für Aimsniff und Netams. Ich habe Netams gestoppt. Und mysql hat aufgehört, "mysql-bin."-Dateien zu produzieren. Das Problem liegt also vermutlich zwischen mysql und Netams. Aber ich kann den Grund noch nicht finden.
Es gibt einige Zeilen des Befehls „mysqlbinlog mysql-bin.000179 | less“, wenn ich versuche, die Datei mysql-bin zu lesen, die vor der aktuellen erstellt wurde.
'fw-sher1# mysqlbinlog mysql-bin.000179 | weniger
'/!40019 SETZEN @@session.max_insert_delayed_threads=0/;
'/!50003 SETZEN @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0/; 'TRENNZEICHEN /!/;
'# um 4
'#130915 11:27:20 Server-ID 1 end_log_pos 98 Start: Binärlog v 4, Server v 5.0.81-Log erstellt 130915 11:27:20
'Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für Datei-ID: 1417 vorhanden
ist. 'Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für Datei-ID: 1417 vorhanden ist.
'Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für Datei-ID: 1417 vorhanden ist.
'Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für Datei-ID: 1417 vorhanden ist.
'# um 98
'#130915 11:27:19 Server-ID 1 end_log_pos 8313
'#Append_block: Datei-ID: 1417 Blocklänge: 8192
'# um 8313
'#130915 11:27:19 Server-ID 1 End-Log-Position 16528
'#Anhängeblock: Datei-ID: 1417 Blocklänge: 8192
'# um 16528
'#130915 11:27:19 Server-ID 1 End-Log-Position 24743 '#
Anhängeblock: Datei-ID: 1417 Blocklänge: 8192
'# um 24743
'#130915 11:27:19 Server-ID 1 End-Log-Position 32958
'#Anhängeblock: Datei-ID: 1417 Blocklänge: 8192
'# um 32958
'#130915 11:27:19 Server-ID 1 End-Log-Position 41173
'#Anhängeblock: file_id: 1417 block_len: 8192
'# at 41173
'#130915 11:27:19 server id 1 end_log_pos 82248
'#Append_block:Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für file_id: 1417 vorhanden ist
. 'Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für file_id: 1417 vorhanden ist.
'Warnung: Append_block wird ignoriert, da kein Create_file-Ereignis für file_id: 1417 vorhanden ist.
Und so weiter und so fort. Für mich ergibt das keinen Sinn.
Was sagt netams.log
Datei: netams.log Zeile 1006126 Spalte 0 180576689 Bytes 84 %
13.09.2013 23:59:52.8916 Datenquelle: 1 [WARN]: Habe die folgenden FEHLER von MySQL erhalten: Ebene = Fehler, Code = 126, Nachricht = Falsche Schlüsseldatei für Tabelle „./netams/monitor.MYI“. Versuchen Sie, sie zu reparieren.
13.09.2013 23:59:52.8916 Datenquelle: 1 [WARN]: Habe die folgenden FEHLER von MySQL erhalten: Ebene = Fehler, Code = 126, Nachricht = Falsche Schlüsseldatei für Tabelle „./netams/monitor.MYI“. Versuchen Sie, sie zu reparieren.
13.09.2013 23:59:52.8919 Datenquelle:1 [WARN]: Beim Laden der Daten in SQL für den Monitor ist ein Fehler aufgetreten. Versuchen Sie „Speicher debuggen“.
14.09.2013 00:01:20.0461 Datenquelle:1 [WARN]: SQL-Ladedaten: Falsche Schlüsseldatei für Tabelle „./netams/monitor.MYI“. Versuchen Sie, sie zu reparieren.
14.09.2013 00:01:20.0464 Datenquelle:1 [WARN]: Von MySQL habe ich die folgenden WARNUNGEN erhalten: Ebene = Warnung, Code = 1262, Nachricht = Zeile 243 wurde abgeschnitten. Sie enthielt mehr Daten als Eingabespalten vorhanden waren.
14.09.2013 00:01:20.0464 Datenquelle:1 [WARN]: Habe folgende WARNUNGEN von MySQL erhalten: Level = Warnung, Code = 1262, Nachricht = Zeile 265 wurde abgeschnitten, sie enthielt mehr Daten als Eingabespalten vorhanden waren.
Antwort1
14.09.2013 00:01:20.0461 data-source:1 [WARN]: SQL Load data: Incorrect key file for table './netams/monitor.MYI'; try to repair it
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 243 was truncated; it contained more data than there were input columns.
14.09.2013 00:01:20.0464 data-source:1 [WARN]: Got the following WARNINGS from MySQL: level = Warning, code = 1262, message = Row 265 was truncated; it contained more data than there were input columns.
Dieser Fehler weist darauf hin, dass die Netams-Datenbank einige beschädigte Tabellen enthält. Beachten Sie den Abschnitt „Falsche Schlüsseldatei für Tabelle „./netams/monitor.MYI“;versuche es zu reparieren".
Das Reparieren von Tabellen kann normalerweise mit wenigen Befehlen durchgeführt werden. Das Reparieren einer Tabelle kann gelegentlich zu Datenverlust führen, also sichern Sie die Tabellen zuerst. Die Reparatur kann je nach Größe der Datenbank eine Weile dauern – manchmal scheint die Reparatur 10 bis 20 Minuten lang hängen zu bleiben, aber tatsächlich sucht sie still und leise nach beschädigten Zeilen. Tun Sie dies in einem zweiten Fenster, damit Sie es im Auge behalten können, und seien Sie geduldig.
Tipps zum Reparieren von Tabellen finden Sie im MySQL-Handbuch: