I have a server setup as follows:
webserver
(gateway machine, accessible from the Internet via SSH)dbserver
(database server, not accessible from the web)My goal is to use mysqldump
to pull a backup from dbserver
to my laptop via the web. Up to this point, the question is a duplicate of this question, except that webserver
does not have mysqldump
installed, and I don't have the rights to install it. So I'm trying to use mysqldump
on my laptop to pull from a server behind a gateway that I don't have SSH rights to.
Following the discussions here and here, I'm trying to do something like this to set up the tunnel:
ssh -f -L 3306:dbserver:3306 user@webserver -N
followed by:
mysqldump -P 3306 -h localhost -u dbuser -p db
but I run into the same trouble this person did, and am not quite sure what's going on with the tunneling or how to fix it (and adding an entry to my laptop's hosts file doesn't seem to fix it like it did for him).
By using SSH, it is very easy to create a backup (dump) of your entire database. Once at the shell prompt, type in the following command and press [enter]: mysqldump -h 127.0. 0.1 -u db_user -p db_name > db_backup.
Dump databases daily to the gateway machine then fetch from there
#!/bin/sh
# Backup the mysql Databases
for database in $(mysql -u b4ckup -pd1psh1t --host server.database.net -e "show databases" | awk '{print $1}' | grep -v Database)
do
mysqldump -u user -p password --lock-tables=false --host server.database.net $database > /storage/backups/`date +\%Y-\%m-\%d`-`date +\%A`/server/$database.sql
done
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With