IT Wiki: MySQL

Schnell-Referenz: Häufig verwendete Code-Schnipsel und Anweisungen für Entwickler.

Datenbank erstellen

CREATE DATABASE databasename;
CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my-strong-password-here';
GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'localhost' WITH GRANT OPTION;

Datensicherung

mysqldump -h host -u user -p dbname > dateiname.sql

Datensicherung ohne Tablespaces

In einigen Konfigurationen kommt es zu Berechtigungsproblemen mit Tablespaces.
Insbesondere bei Shopware 6 Systemen kann es Sinn machen, die Datenbank ohne Tablespaces zu exportieren. Vorher unbedingt sicherstellen, dass die Datenbank nicht als NDB Cluster konfiguriert ist, denn dann muss die Datenbank inkl. der Tablespace-Definition exportiert werden.

mysqldump -h host -u user -p --no-tablespaces dbname > backup.sql

Shopware 6 MySQL Dump

Bei Shopware 6 hat sich diese Nutzung von mysqldump bewährt:

mysqldump -h hostname -uusername -p --routines --add-drop-table --disable-keys --skip-extended-insert --hex-blob --skip-triggers --no-tablespaces databasename > YYYY-mm-dd-shopware.sql

Anwendungspfade

Je nach Server-Konfiguration kann es vorkommen, dass der Befehl mysqldump nicht direkt gefunden wird. Zu beobachten ist das bspw. bei Profihost. Der Pfad zum Programm muss dann separat angegeben werden. Den kann man entweder selbst ermitteln, sich vom Hoster nennen lassen, aber meist lässt er sich auch in der Dokumentation des Hosters nachschlagen.

Statt nur mysqldump schreibt man dann den Pfad davor:

/usr/local/mysql/bin/mysqldump

Datenbank importieren

mysql -uusername -p database_name < file.sql