Karena judulnya docker so pertama kita install dulu mysql di docker
1. Ambil image msql docker
docker pull mariadb
2. Ambil image phpmyadmin docker
docker pull phpmyadmin/phpmyadmin
3. Buat container untuk database
Format :
docker run --name=[container_name] -e MYSQL_ROOT_PASSWORD=[yourpassword] -e MYSQL_DATABASE=[database_name] -p 3306:3306 -d mariadb
Contoh :
docker run --name=dbpenjualan -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=penjualan -p 3306:3306 -d mariadb
4. Buat container untuk phpmyadmin
Format :
docker run --name [container_name]-d --link [mariadb_container_name]:db -p 8080:80 phpmyadmin/phpmyadmin
Contoh :
docker run --name phpMypenjualan -d --link dbpenjualan:db -p 8080:80 -e UPLOAD_LIMIT=300M phpmyadmin/phpmyadmin
Tapi jika container database dan container phpmyadmin berbeda host maka perlu ditambahkan seperti ini :
docker run --name phpmyxxxx -d -e PMA_HOST=192.168.x.x -p 60000:80 -e UPLOAD_LIMIT=900M phpmyadmin/phpmyadmin
Contoh diatas dengan asumsi default port databasenya 3306 dan untuk phpmyadminnya di akses dengan port 60000
5. Testing phpmyadminnya dengan ip local:8080
Kalau berhasil Alhamdulillah..
6. Buat Shell untuk backup-nya
nano backup.sh
kemudian isikan :
user=root
pass=123456
host=192.168.2.10
dir=/home/ubuntu/backupdb
backup(){
date=$(date +%Y%m%d-%H%M)
tanggal=$(date +%d)
bulan=$(date +%m)
tahun=$(date +%Y)
if [ ! -d "$dir/$tahun/$bulan/$tanggal/" ];
then mkdir --parents $dir/$tahun/$bulan/$tanggal;
fi
mysqldump -h -u$user -p$pass pembelian -h$host --routines | gzip > $dir/$tahun/$bulan/$tanggal/pembelian-$date.sql.gzip
# gzip -f $dir/$tahun/$bulan/$tanggal/$dbs-$date.sql
}
backup
exit 0
Kemudian simpan
7. Tambahkan akses eksekusi ke file tersebut
chmod +x backup.sh
8. test backup tersebut dg
./backup.sh
9. Kalau berhasil kita bikin schedul dengan crontab dengan install crontab nya
sudo apt-get install cron
Melihat aktifitas crontab
sudo crontab -l
10. Membuat schedule
sudo crontab -e
Isikan dengan format ini
# |---------------- menit ke (0 - 59)
# | .------------- jam ke (0 - 23)
# | | .---------- tanggal (1 - 31)
# | | | .------- bulan (1 - 12)
# | | | | .---- hari ke, dalam pekan (0 - 6) (Minggu=0 or 7)
# | | | | |
# * * * * * command.sh
Contoh, saya ingin menjalankan auto backup tiap jam 01.01 malam, maka saya akan mengisikan sebagai berikut
1 1 * * * /home/backup/backup.sh
Selesai....