Cara Menulis Skrip Sederhana Untuk Pencadangan Database MySQL - CRUDPRO

Cara Menulis Skrip Sederhana Untuk Pencadangan Database MySQL

Cara Menulis Skrip Sederhana Untuk Pencadangan Database MySQL

Di sini kita akan melihat langkah-langkah menulis skrip untuk backup database MySQL.

  • kita akan menginstal MySQL pada mesin uji kita
  • Jadi, inilah perintah untuk memperbarui repo yang ada dan menginstal MySQL di Ubuntu:
  • Di blog ini kita akan melihat cara mengkonfigurasi atau menulis skrip shell untuk mengambil cadangan database MySQL dan disalin ke S3.
  • sudo apt update && sudo apt install mysql-server
  • Setelah Anda menginstal server mysql maka kita harus menginstal klien mysql dengan mengikuti perintah di bawah ini
  • sudo apt install mysql-client
  • Langkah selanjutnya kita harus memverifikasi mesin saat ini versi shell mana yang telah diinstal pada mesin uji kita
  • ubuntu $ which $SHELL
    /bin/bash
  • Mari hubungkan Database MySQL dan buat database baru dan tabel pengujian baru.
  • mysql -u root
  • Untuk membuat skrip basis data
  • mysql> create database test;
    Query OK, 1 row affected (0.00 sec)
  • Mari buat tabel di dalam database pengujian
  • CREATE TABLE tutorials_tbl(
     tutorial_id INT NOT NULL AUTO_INCREMENT,
     tutorial_title VARCHAR(100) NOT NULL,
     tutorial_author VARCHAR(40) NOT NULL,
     submission_date DATE,
     PRIMARY KEY ( tutorial_id )
     );
    
    ------Insert script--------
    
     INSERT INTO tutorials_tbl 
    (tutorial_title, tutorial_author, submission_date)
    VALUES
    ("Learn PHP", "John Poul", NOW());
    
    
     INSERT INTO tutorials_tbl
    (tutorial_title, tutorial_author, submission_date)
    VALUES
    ("Learn MySQL", "Abdul S", NOW());
    
    
     INSERT INTO tutorials_tbl
    (tutorial_title, tutorial_author, submission_date)
    VALUES
    ("JAVA Tutorial", "Sanjay", '2007-05-06');
  • Alih-alih menggunakan pengguna root, saya akan membuat nama pengguna baru bernama "Hulk" dengan privasi penuh
  • CREATE USER 'Hulk'@'localhost' IDENTIFIED BY 'Hulk@123$#@';
    
    GRANT ALL PRIVILEGES ON *.* TO 'Hulk'@'localhost' WITH GRANT OPTION;
  • kita biasanya menggunakan dump MySQL untuk mengambil dump logis dari database tetapi beberapa skenario kita harus mengambil db secara berkala dan memerlukan banyak upaya manual untuk menghindari upaya ini, kita akan menulis skrip.
  • #!/bin/bash
      
    cdm=`date +"%Y_%m_%d"`
    user_name="Hulk"
    password="Hulk@123$#@"
    db_name="test"
    echo "Mysqldump database creation is progress"
    start_time=`date +"%Y-%m-%d-%H-%M-%s"`
    echo "$start_time Script Start Time"
    mysqldump -u $user_name --password=$password $db_name > /backup-dir/$db_name-$cdm.sql 
    end_time=`date +"%Y-%m-%d-%H-%M-%s"`
    echo "mysqldump $end_time completed"
    Expected Output:
    Mysqldump database creation is progress
    2023-02-09-15-30-1675956646 Script Start Time
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    mysqldump 2023-02-09-15-30-1675956646 completed
  • Jika kami harus menyalin file langsung ke S3, kami harus sedikit memodifikasi skrip
  • mysqldump -u $user_name -p $password $db_name | aws s3 cp - s3://backup-dir/$db_name-$cdm.sql --region us-west-2
  • Di atas kami telah melewati output dump ke input standar s3.
  • Ini skrip terakhirnya
  • #!/bin/bash
      
    cdm=`date +"%Y_%m_%d"`
    user_name="Hulk"
    passwd="Hulk@123$#@"
    db_name="test"
    echo "Mysqldump database creation is progress"
    start_time=`date +"%Y-%m-%d-%H-%M-%s"`
    echo "$start_time Script Start Time"
    mysqldump -u $user_name --password=$password $db_name | aws s3 cp - s3://backup-dir/$db_name-$cdm.sql --region us-west-2
    end_time=`date +"%Y-%m-%d-%H-%M-%s"`
    echo "mysqldump $end_time completed"
  • Sekarang kami menerima pesan peringatan bahwa kami menggunakan kata sandi langsung ke skrip kami
  • Expected-output:
    Mysqldump database creation is progress
    2023-02-09-15-30-1675956646 Script Start Time
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    mysqldump 2023-02-09-15-30-1675956646 completed
    Cara Menulis Skrip Sederhana Untuk Pencadangan Database MySQL

Catatan: Untuk memindahkan cadangan di S3 kita harus menginstal awscli di benteng kita serta kita perlu mengonfigurasi kunci akses dan akses keamanan di perintah konfigurasi aws, jika tidak maka akan melalui kesalahan.

Peringatan Mysql Menggunakan Kata Sandi pada Antarmuka Baris Perintah Bisa Tidak Aman
  • Untuk memperbaiki pesan peringatan di atas kita harus membuat nama file teks yang disebut "myhostalias"
  • vi myhostalias
    
    mysql_config_editor set --login-path=myhostalias --host=localhost --user=Hulk --password=Hulk@123$#@
    
        Here our
  • Ini skrip baru kita
  • #!/bin/bash
      
    cdm=`date +"%Y_%m_%d"`
    db_name="test"
    echo "Mysqldump database creation is progress"
    start_time=`date +"%Y-%m-%d-%H-%M-%s"`
    echo "$start_time Script Start Time"
    mysqldump --login-path=myhostalias $db_name > $db_name-$cdm.sql 
    end_time=`date +"%Y-%m-%d-%H-%M-%s"`
    echo "mysqldump $end_time completed"
    Expected output:
    Mysqldump database creation is progress
    2023-02-09-15-38-1675957098 Script Start Time
    mysqldump 2023-02-09-15-38-1675957098 completed
  • Sekarang skrip kami tidak berisi nama pengguna dan kata sandi karena semua informasi yang diperlukan telah disimpan di file myalias.

Catatan: Ini untuk tujuan membaca, jangan mencoba menyalin dan mengeksekusi di lingkungan produksi Anda