Hvis du nogensinde har brugt MySQL, er der stor sandsynlighed for, at du har taget backup af din database. Hvis du tog sikkerhedskopier af din database, er der stor sandsynlighed for, at du mindst én gang har tænkt på, hvordan du kunne sikre dem. I dette blogindlæg vil vi fortælle dig, hvordan du gør præcis det.
Hvorfor skal du sikre dine MySQL-sikkerhedskopier?
Før vi fortæller dig, hvordan du skal sikre dine MySQL-sikkerhedskopier, bør vi nok fortælle dig, hvorfor du skal sikre dem i første omgang. Hvad mener vi overhovedet med at "sikre" dine MySQL-sikkerhedskopier? MySQL-sikkerhedskopier burde være sikre som standard, ikke? Desværre er alt ikke så simpelt, som det ser ud til. For at tage og vedligeholde sikre MySQL-sikkerhedskopier bør du overveje følgende:
-
Tag dine MySQL-sikkerhedskopier sikkert
-
Gemme dine MySQL-sikkerhedskopier sikkert
-
Overfør dine MySQL-sikkerhedskopier sikkert
Nu er det selvfølgelig lettere sagt end gjort, men vi vil give nogle generelle råd, der kan guide dig i den rigtige retning.
Sikring af MySQL-sikkerhedskopier
-
For sikkert at tage dine MySQL-sikkerhedskopier ved at bruge for eksempel mysqldump, skal du overveje at angive brugernavnet og adgangskoden til din MySQL-bruger inde i my.cnf. Du kan endda oprette en .my.cnf-fil i dit hjemmebibliotek, gemme brugernavnet og adgangskoden der og derefter bruge --defaults-extra-file-indstillingen til at bede MySQL om at læse denne fil efter den globale indstillingsfil:
[mysqldump] user=demo_user password=demo_password
På denne måde behøver du ikke længere at angive din MySQL adgangskode, når du kører mysqldump - ved at sætte dit brugernavn og adgangskode inde i my.cnf gør du din adgangskode usynlig for andre end DBA'er.
-
Overvej at tage et kig på mysqldump-secure:det er et POSIX-kompatibelt wrapper-script til mysqldump med krypteringsmuligheder. Værktøjet kan sikkerhedskopiere databaser som separate filer. Databaser kan også sortlistes fra at blive sikkerhedskopieret. Værktøjet kan også kryptere dine MySQL-databaser, og det er også selvvaliderende, hvilket betyder, at hvis noget går galt, vil det fortælle dig, hvad der skete, og hvordan du løser det, så hvis du leder efter et alternativ til mysqldump, skal du helt sikkert overveje at give det en prøv.
-
Når du har taget en sikkerhedskopi af dine MySQL- eller MariaDB-databaseinstanser, kan du overveje at kryptere den. Sandsynligvis er data et af de mest værdifulde aktiver for din organisation, og ved at kryptere dem kan du sikre dig, at de er beskyttet ordentligt. Heldigvis er kryptering af MySQL-sikkerhedskopier ikke særlig kompliceret, og det kan gøres på et par måder, herunder kryptering af den lokale fil og kryptering af sikkerhedskopien on-the-fly. For at kryptere en lokal kopi af din sikkerhedskopi skal du blot tage en sikkerhedskopi af de data, der er gemt i MySQL, og derefter kryptere dem ved at bruge for eksempel OpenSSL (erstat adgangskoden med den adgangskode, du vil bruge):
$ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password
Din sikkerhedskopi kan dekrypteres ved at køre:
$ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password
Du kan også overveje at kryptere dine sikkerhedskopier på farten. For at gøre det skal du generelt implementere kryptering, når sikkerhedskopien bliver genereret (dvs. generer sikkerhedskopien, komprimer den og krypter den). Sådan gør du det for MySQL ved hjælp af mysqldump (din sikkerhedskopi ville hedde encrypted_backup.xb.enc):mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl enc -aes-256-cbc -k password > encrypted_backup.xb.enc
Du kan også kryptere dine sikkerhedskopier ved hjælp af ClusterControl:Marker blot afkrydsningsfelterne "Brug kompression" og (eller) "Aktiver kryptering" i sidste fase af sikkerhedskopieringen, og du er færdig . Ja, så nemt er det!
Du vil måske også tage et kig på et shell-script kaldet mysql_secure_installation (eller mariadb_secure_installation, hvis du bruger MariaDB). Scriptet giver dig mulighed for at:
-
Indstil en adgangskode til MySQL's root-konti.
-
Fjern root-konti, der er tilgængelige uden for den lokale vært.
-
Fjern alle anonyme brugerkonti og testdatabasen, som anonyme brugere kan få adgang til.
Hvis du implementerer MySQL eller MariaDB ved hjælp af ClusterControl, noget du kan gøre frit med Community Edition, tager implementeringsprocessen sig automatisk af disse sikkerhedsforanstaltninger.
Oversigt
Når det kommer til at sikre dine MySQL-sikkerhedskopier, er listen over de ting, du kan gøre, ret lang. Vi håber, at dette blogindlæg har givet dig nogle ideer til, hvad du kan gøre for at sikre dine MySQL- eller MariaDB-sikkerhedskopier:Generelt kan sikkerhedskopier sikres ved at gøre din adgangskode uobserverbar, når mysqldump kaldes, også når du krypterer dine sikkerhedskopier lokalt eller på- fluen.