Selasa, 18 Januari 2022

Cara backup database otomatis mysql docker

 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....

Minggu, 09 Januari 2022

Cara Port Forwarding di Windows

 Kasusnya kali ini adalah, port mysql kadang di block oleh provider,, sehingga port 3306 harus di alihkan ke port lain. 

Masalahnya pada database tersebut terdapat beberapa aplikasi,, sehingga di mysql harus tetap 3306 sedangkan yg masalah hanya 1 aplikasi saja yg di akses dari luar kantor. 

Sebenernya simple sih di mikortik tinggal forward aja dari port misal 1111 ke port 3306, mslahnya kalau di dalam kantor kan gak ngelewati mikrotik. Jadi harus forward portnya di komputer database itu sendiri..

Okkay berikut caranya pertama bukan comman terminal menggunakan admin

Untuk membuat port forwarding :

netsh interface portproxy add v4tov4 listenport=1111 listenaddress=0.0.0.0 connectport=3306 connectaddress=192.168.x.x

Untuk menampilkan semua port forwarding yang sudah dibuat :

netsh interface portproxy show all


Untuk menghapus semua port forwarding yg sudah dibuat :

netsh interface portproxy reset


Untuk penghapus salah satu port forwarding :

netsh interface portproxy delete v4tov4 listenport=1111 listenaddress=192.168.x.x


Okkay sekian tulisan saya...