Kategorie: MySQL
-
Strato und MySQL: General error: 1709 Index column size too large. The maximum column size is 767 bytes.
Bei einem Kunden wurde mir folgende Fehlermeldung angezeigt, wenn ich versucht habe über Symfony die Datenbank erstellen zu lassen: General error: 1709 Index column size too large. The maximum column size is 767 bytes. Dies liegt daran, das Strato so komische Einstellung bei ihren Managed Hosting Packete wie z.B. das STRATO PowerWeb hat. Strato wird…
-
Projekt: baby-taschenrechner.de
Das gerade fertiggestellt Projekt baby-taschenrechner.de beschäftigt sich mit den Fragestellungen rund um die Entwicklung des eigenen Kindes: Wie groß wird mein Kind werden in x-Jahren Wie schwer wird mein Kind in x-Jahren Ist mein Kind zu schwer/zu dünn Welche Kleidergröße wird es wann tragen? Die Webseite soll Eltern dabei helfen herauszufinden, wann sie welche Kleidergröße…
-
MySQL ProcessList unter Linux beobachten
Wenn man die Process List von MySQL sich ständig aktualisiert anzeigen lassen will, kann man den watch Lionux Befehl auf der Console dafür benutzen. Login, Host und Passwort müssen ggf. geändert werden: watch -n 1 „mysql -u root –password=’myPassword‘ -h localhost -s -e ‚SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE 1 = 1;'“
-
MySQL Monitoriong der ProcessList / Queries mit einem Konsolen Befehl
Ein hilreicher Befehl für die problem-Analyse von MySQL Servern ist sich die ProcessList anzuschauen, um zu sehen, welche Quueries aktuell ausgeführt werden. Wenn man dies kombiniert mit dem watch Befehl und diesen 1 mal pro Sekunde neuladen lässt und auf die Queries reduziert, hat man eine guter Übersicht, was auf dem MySQL Server los ist…
-
MySQL eigener Variablen in Query verwenden
Es ist sehr einfach möglich in MYSQL Variablen zu verwenden für MySQL Statements. Diese müssen definiert werden mit der SET Funktion und dem @-Prefix: SET @a= ‚a‘; Und kann dann benutzt werden für die Dauer der DB-Session: UPDATE my_table SET x = @a WHERE y = @a;
-
History für MySQL Tabelle anlegen
Wenn man loggen will, wer wann und welche Änderungen an einer Tabelle „tabelle1“ gemacht hat, sollte man sich eine Tabelle namens „tabelle1_history“ und automatisch per MySQL Trigger auf Update und Delete Ereignisse reagieren: Hinweis: __XYZ__ Platzhalter sind zu ersetzen Trigger auf Update Aktionen CREATE DEFINER=`__USER__`@`%` TRIGGER `__DB__`.`__TRIGGER_NAME_DEL__` BEFORE DELETE ON `__DB__`.`__TABLE__` FOR EACH ROW BEGIN…
-
MySQL Update Deadlock InnoDB
Ein kniffeliges Problem ist letztens aufgetreten bei einer partitionierten MySQL Datenbank. Es kam immer wieder bei hoher Last zu Deadlock Meldungen seitens MySQL. Immer waren 2 Queries davon betroffen, die dieselbe Form hatten: –Query1: UPDATE myTable SET createdOn=’2016-05-23 16:08:29′, foo=’y‘ WHERE id=1 –Query2: UPDATE myTable SET createdOn=’2016-05-23 16:08:29′, foo=’x‘ WHERE id=2 Im MySQL Error Log war…
-
Importieren und Exportieren alle MySQL Datenbanken unter Windows und Mac
Unter Windows kann man mit einem Befehl sehr leicht alle Daten exportieren in MySQL mit mysqldump: cd C:\xampp\mysql\bin mysqldump.exe -u root -p –opt –all-databases –verbose > C:\export.sql Erläuterung: –opt: Export alle DBs, ohne „system“ databases wie mysql, information_schema, performance_schema und test –verbose: um log Meldungen anzuzeigen auf dem Bildschirm, es sind nicht viele, so…
-
MySQL Spalte kopieren innerhalb desselben Datensatzes
Wenn man bspw. eine Spalte inserted einfügen will und diese inital mit dem schon vorhandenen last_change Werten ausstatten will, kann man folgenden Code benutzen: UPDATE table_name dt1, table_name dt2 SET dt1.inserted = dt2.last_change WHERE dt1.id = dt2.id
-
Importieren/Exportieren großer MySQL Datenbanken unter Xampp
Beim Importieren großer Datenmengen unter Xampp stößt man über den Weg von phpMyAdmin schnell auf Grenzen der Skriptlaufzeit oder auf Performance-Grenzen: Fatal error: Maximum execution time exceeded Diese kann zwar angepasst werden, aber ein solcher Import kann Stunden dauern. Der Import über die Konsole ist um den Faktor 10 schneller. Statt einer Stunde benötigt man…