Inhaltsverzeichnis

Docker und MySQL/MariaDB

Mysql aus Docker Container sichern und restoren

mysql-docker.sh

Backup und restore

docker exec CONTAINER /usr/bin/mysqldump -u root –password=root DATABASE > backup.sql
cat backup.sql docker exec -i CONTAINER /usr/bin/mysql -u root –password=root DATABASE

restore 2. Version backup und restore

docker exec db_container_name mysqldump [--user yourusername] [--password=yourpassword] databasename> /desired/path/to/db.dump

docker exec -i db_container_name mysql [--user yourusername] [--password=yourpassword] databasename </path/to/db.dump

Mariadb aus Docker Container sichern und restoren

Hier die Anleitung für die Sicherung

docker exec CONTAINER NAME/usr/bin/mariadb-dump --user=root --password= MARIADB-PASSWORT --lock-tables DATABASENAME> /SPEICHERORT/DATEINAME_`date +"%d"`.sql

Hier die Anleitung für den restore einer normalen db, hier über Docker

docker exec -i CONTAINERNAME /usr/bin/mariadb –user=USERNAME –password=DBPASSWORD DATABASENAME </SPEICHERORT/FILENAME

Maria-DB CLI starten

  1. suche in der Bash mit docker container ps -a die ID des Containers
  2. docker exec -it container-id bash
  3. mysql –user=root –password=dein-rootpasswort Nähere Infos findest du hier

Maria-DB Error 4047

InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE
in docker-compose folgende Zeile einfügen:
command: –innodb-read-only-compressed=OFF

Standardkonfiguration des Docker Containers ändern

Oft ist es notwendig, einige Standardvariablen von Mariadb zu ändern. Bei einigen Fällen geht das über die ENVIRONMENT Variablen, z.B.:

- MYSQL_ROOT_PASSWORD=mysecretpassword
- MYSQL_DATABASE=mydatabase
- MYSQL_USER=myuser
- MYSQL_PASSWORD=mypassword
- MYSQL_CHARACTER_SET_SERVER=utf8mb4
- MYSQL_COLLATION_SERVER=utf8mb4_general_ci
- MYSQL_MAX_ALLOWED_PACKET=128M
- MYSQL_INNODB_BUFFER_POOL_SIZE=512M
- MYSQL_INNODB_LOG_FILE_SIZE=512M
- MYSQL_MAX_CONNECTIONS=100

Abhängig von der Maria-DB Version können u.a. auch folgende Variablen über Command übergeben werden:

command: --transaction-isolation=READ-COMMITTED
command: --binlog-format=ROW
command: --innodb-read-only-compressed=OFF
command: --innodb_buffer_pool_size=512M