PHP, MySQL - Formular de inregistrare a utilizatorilor
Cuprins:
- Sintaxa comenzii Mysqldump
- Backup-ul unei baze de date MySQL unice
- Backup Multe baze de date MySQL
- Backup Toate bazele de date MySQL
- Backup toate bazele de date MySQL pentru fișiere separate
- Creați o copie de rezervă comprimată a bazei de date MySQL
- Creați o copie de siguranță cu Timestamp
- Restaurarea unei descărcări MySQL
- Restaurați o singură bază de date MySQL dintr-o descărcare completă MySQL
- Exportați și importați o bază de date MySQL într-o singură comandă
- Automatizarea copiilor de siguranță cu Cron
- Concluzie
Acest tutorial explică cum să faceți backup și să restaurați bazele de date MySQL sau MariaDB din linia de comandă folosind utilitarul mysqldump.
Fișierele de rezervă create de utilitatea mysqldump sunt practic un set de instrucțiuni SQL care pot fi utilizate pentru a recrea baza de date originală. Comanda mysqldump poate genera și fișiere în format CSV și XML.
De asemenea, puteți utiliza utilitarul mysqldump pentru a transfera baza de date MySQL pe un alt server MySQL.
Sintaxa comenzii Mysqldump
Înainte de a intra în modul de utilizare a comenzii mysqldump, să începem prin revizuirea sintaxei de bază.
Expresiile de utilitate mysqldump iau următoarea formă:
mysqldump > file.sql
-
options
-options
mysqldumpfile.sql
- Fișierul dump (backup)
Pentru a utiliza comanda mysqldump, serverul MySQL trebuie să fie accesibil și să funcționeze.
Backup-ul unei baze de date MySQL unice
Cel mai obișnuit caz de utilizare al instrumentului mysqldump este să faceți backup unei baze de date unice.
De exemplu, pentru a crea o copie de rezervă a bazei de date numită
database_name
folosind
root
utilizatorului și a o salva într-un fișier numit
database_name.sql
ar trebui să executați următoarea comandă:
mysqldump -u root -p database_name > database_name.sql
Vi se va solicita să introduceți parola rădăcină. După autentificarea cu succes, procesul de descărcare va începe. În funcție de dimensiunea bazei de date, procesul poate dura ceva timp.
mysqldump database_name > database_name.sql
Backup Multe baze de date MySQL
Pentru a face backup la mai multe baze de date MySQL cu o singură comandă, trebuie să utilizați opțiunea
--database
urmată de lista bazelor de date pe care doriți să o faceți backup. Fiecare nume de bază de date trebuie separat prin spațiu.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
Comanda de mai sus va crea un fișier dump care conține ambele baze de date.
Backup Toate bazele de date MySQL
Folosiți opțiunea - all
--all-databases
pentru a face o copie de siguranță a tuturor bazelor de date MySQL:
mysqldump -u root -p --all-databases > all_databases.sql
La fel ca în exemplul precedent, comanda de mai sus va crea un singur fișier dump care conține toate bazele de date.
Backup toate bazele de date MySQL pentru fișiere separate
Utilitarul
mysqldump
nu oferă o opțiune de rezervă a tuturor bazelor de date pentru fișiere separate, dar realizăm cu ușurință asta cu o buclă simplă bash
FOR
:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
Comanda de mai sus va crea un fișier dump separat pentru fiecare bază de date folosind numele bazei de date ca nume de fișier.
Creați o copie de rezervă comprimată a bazei de date MySQL
Dacă dimensiunea bazei de date este foarte mare, este bine să comprimați ieșirea. Pentru a face acest lucru, pur și simplu conductați ieșirea la utilitatea
gzip
și o redirecționați către un fișier așa cum se arată mai jos:
mysqldump database_name | gzip > database_name.sql.gz
Creați o copie de siguranță cu Timestamp
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Comanda de mai sus va crea un fișier cu următorul format
database_name-20180617.sql
Restaurarea unei descărcări MySQL
Puteți restaura o descărcare MySQL folosind instrumentul
mysql
. Sintaxa generală a comenzii este următoarea:
mysqld database_name < file.sql
În cele mai multe cazuri, va trebui să creați o bază de date în care să o importați. Dacă baza de date există deja, mai întâi trebuie să o ștergeți.
În următorul exemplu, prima comandă va crea o bază de date numită
database_name
și apoi va importa dump
database_name.sql
în ea:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
Restaurați o singură bază de date MySQL dintr-o descărcare completă MySQL
mysql --one-database database_name < all_databases.sql
Exportați și importați o bază de date MySQL într-o singură comandă
În loc să creați un fișier dump dintr-o bază de date și apoi să importați backup-ul într-o altă bază de date MySQL, puteți utiliza următoarea linie:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
Comanda de mai sus va
remote_database_name
ieșirea către un client mysql de pe gazda de la distanță și o va importa într-o bază de date denumită
remote_database_name
. Înainte de a rula comanda, asigurați-vă că baza de date există deja pe serverul de la distanță.
Automatizarea copiilor de siguranță cu Cron
Automatizarea procesului de rezervă a bazelor de date este la fel de simplă precum crearea unui job cron ce va rula comanda mysqldump la ora specificată.
Pentru a configura copii de rezervă automate ale unei baze de date MySQL folosind cronjob, urmați pașii de mai jos:
-
Creați un fișier numit
.my.cnf
în directorul de acasă al utilizatorului:sudo nano ~/.my.cnf
Copiați și inserați următorul text în fișierul.my.cnf.
user = dbuser password = dbpasswd
Nu uitați să înlocuiți
dbuser
șidbpasswd
cu parola utilizatorului bazei de date și parola utilizatorului.Limitați permisiunile fișierului de acreditări, astfel încât numai utilizatorul dvs. să aibă acces la acesta:
chmod 600 ~/.my.cnf
Creați un director pentru stocarea copiilor de rezervă:
mkdir ~/db_backups
Deschideți fișierul dvs. crontab de utilizator:
crontab -e
Adăugați următorul job cron care va crea o copie de rezervă a unui nume de bază de date
mydb
fiecare zi lamydb
:0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
Nu uitați să înlocuiți
username
cuusername
real.
De asemenea, puteți crea un alt cronjob pentru a șterge orice copie de rezervă mai veche de 30 de zile:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
Desigur, trebuie să ajustați comanda în funcție de locația de rezervă și numele fișierelor. Pentru a afla mai multe despre comanda find, verificați Cum să găsiți fișiere în Linux folosind ghidul liniei de comandă.
Concluzie
Acest tutorial acoperă doar elementele de bază, dar ar trebui să fie un bun început pentru oricine dorește să învețe cum să creeze și să restaureze baze de date MySQL de pe linia de comandă folosind utilitarul mysqldump.
Puteți verifica, de asemenea, tutorialul despre cum puteți reseta o parolă rădăcină MySQL în cazul în care ați uitat-o.
mysql mariadb backup mysqldumpLectia Sidekick: Copie de rezervă, Copie de rezervă, Backup
Roundup: 4 utilitare de backup pentru dispozitive mobile date.
Cum să faceți o copie de rezervă și să copiați biblioteca iphoto pe un alt mac
Aflați câteva moduri de a face backup pentru iPhoto Library. Întreaga bibliotecă sau selectând fotografiile pe care doriți să le păstrați.
Cum să gestionați bazele de date mysql și utilizatorii din linia de comandă
MySQL este cel mai popular sistem de gestionare a bazelor de date relaționale open-source. Acest tutorial explică modul de utilizare a liniei de comandă pentru crearea și gestionarea bazelor de date și a utilizatorilor bazelor de date MySQL și MariaDB.