MySQL ist eine freie und leistungsfähige SQL-Datenbank.

!!!Berechtigungen
Bei Problemen auf die Datenbank zuzugreifen, kann ein manueller Start erfolgen mit:

{{{
mysqld-debug --defaults-file="C:\...\my.ini" --skip-grant-tables
}}}

Stoppen mit:

{{{
mysqladmin shutdown
}}}

!!!LOB-Handling
MySQL kann auch LOB (Large Object), also Binärdaten (BLOB) und lange Zeichenketten (CLOB) speichern. In Hibernate kann dies als String, byte[], Blob oder Clob erfolgen.

In der Default-Konfiguration überträgt MySQL pro Statement maximal 1 MB, dies kann verändert werden durch einen Konfigurationseintrag in mysql.ini:

{{{
...
[mysqld]
...
max_allowed_packet=100M
}}}

!!!Datenbank Schema
In der Verwaltung des Datenbank-Schemas gibt es einige Besonderheiten.

!!Löschen einer Spalte mit Fremdschlüssel
Es muss zunächst der Fremdschlüssel gelöscht werden, dann kann die Spalte gelöscht werden:

{{{
alter table transaction drop foreign key FK_8mn5rcy8y8uxx2wke530ywcgr;
alter table transaction drop column recipientRole_id;
}}}

!!!Backup
MYISAM-Tabellen können einfach kopiert werden, bei INNODB-Tabellen ist der Index zu beachten. Daher geht man über einen sogenannten Dump:

{{{
mysqldump -u root -p <database> --single-transaction >backup.sql
}}}

__Erklärung:__ Die Option --single-transaction vermeidet explizite Locks anzulegen, für die extra Rechte angelegt werden müssen.

Das Zurückspielen erfolgt mit:

{{{
mysql -u root -p -D <database> <backup.sql
}}}

Je nach vergebenen Rechten kann es erforderlich sein, mysqld-debug zu starten (siehe oben).