# Backup | |
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql | |
# Restore | |
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE | |
Can someone please tell me, how I get the database dump out of the docker container on my host? The command
docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql
seems to dump the file inside the docker container, but I need it on my host. Thanks!I think, you may use this command to get the files in host from container: docker cp :/file/path/within/container /host/path/target
Thanks! I already solved its (inside my script) this way:
docker cp <container_id>:/file/path/within/container /host/path/target
Since you take a mysql dump, automatically the .sql file will appear in your host folder. Tell me what you think?
Thanks! I already solved its (inside my script) this way:
docker cp <container_id>:/file/path/within/container /host/path/target
Very sweet. Thank you very much.
Thank you!
This helped a bunch, thank you!
Thanks
:-*
thank you so much!
Thanks a lot!
Thank you!
Great! Thanks!
Very nice... Thank you so much.
Exactly what I looking for, thanks!
Exactly what I needed. Thank you so much!
Thank you so much. Restore command worked like a charm. Unbelieveable to see that instructions on official Docker image page fail.
this works thank you
good, bro. THANKS.
This is awesome, thank you!
Anybody figure out this socket issue?
docker exec zabbix-docker-62_zabbix-server_1 /usr/bin/mysqldump -u root --password=secret -S /var/run/mysqd/mysqld.socket zabbix > ~/zabbix.dump
mysqldump: Got error: 2002: "Can't connect to local server through socket '/var/run/mysqd/mysqld.socket' (2)" when trying to connect
"Can't connect to local server through socket '/var/run/mysqd/"Can't connect to local server through socket '/var/run/mysqd/mysqld.socket' (2)" when trying to connect
mysqld.socket' (2)" when trying to connect
mysql> show variables like 'socket';
+---------------+-----------------------------+
| Variable_name | Value |
+---------------+-----------------------------+
| socket | /var/run/mysqld/mysqld.sock |
+---------------+-----------------------------+
1 row in set (0.01 sec)
mysql> quit
Bye
bash-4.4# ls -l /var/run/mysqld
total 12
-rw-r----- 1 mysql mysql 2 Jan 24 20:28 mysqld.pid
srwxrwxrwx 1 mysql mysql 0 Jan 24 20:28 mysqld.sock
-rw------- 1 mysql mysql 2 Jan 24 20:28 mysqld.sock.lock
srwxrwxrwx 1 mysql mysql 0 Jan 24 20:28 mysqlx.sock
have you tried to map a volume to your host?
For example, if you dump the .sql file INSIDE the container on /home/dump (or whatever folder you want)
just map this folder as a volume on you host.
I can give you an example with docker-compose.yml. With pure docker I don't know how to map a volume (never needed since I always worked with docker-compose hahaha)
Since you take a mysql dump, automatically the .sql file will appear in your host folder.
Tell me what you think?