ASIX-M10-UF2. MySQL III. Implementació física en un SGBD: arxius de dades, diccionari de dades, índexs i altres arxius auxiliars.
Base de dades de codis postals
En la segona pràctica vam estat treballant amb els codis postals de l'Estat espanyol.
Hi havia tres versions de la base de dades: txt, XML i mysql. Ara és el moment de poder utilitzar els fitxers de la versió per a mysql, i podrem fer una restauració (recovery) de la base de dades a partir dels fitxers. Si mirem la carpeta, veiem que hi ha tres tipus d'arxius.
.frm:- table definition .MYD:-table data .MYI:-table indices
El primer que farem és aturar el mysql:
$ sudo /etc/init.d/mysql stop
On estan els datafiles al mysql? A /etc/mysql hi ha el fitxer de configuració, my.cnf. Si l'editem, veurem en les primeres línies els directoris importants. Concretament:
... datadir = /var/lib/mysql ...
Si anem a aquest directori (com a root), veurem que en aquest directori hi ha una carpeta per cada base de dades. I dins de cada carpeta, hi ha com a mínim un arxiu .frm per cada definició de taula.
Per tant, crearem la carpeta cp/, i copiarem tots els nostres arxius a aquesta carpeta.
# mkdir cp # chown mysql:mysql cp/ # cp /home/joan/M10_UF2_1415/PR2_XML_JSON/cp_mysql/* ./cp # chown mysql:mysql -R cp/
Ja podem tornar a arrencar el mysql, i veiem com podem accedir a la base de dades dels codis postals:
$ sudo /etc/init.d/mysql start $ mysql -u root -p mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | ... | cp | ... mysql> use cp Database changed mysql> show tables; +--------------+ | Tables_in_cp | +--------------+ | t_calles | | t_municipios | | t_provincias | +--------------+ mysql> select * from t_provincias; +---------+--------------+ | CodProv | Provincia | +---------+--------------+ | 01 | Alava | | 02 | Albacete | | 03 | Alicante | ...
Per tant, aquesta és una manera senzilla i pràctica de fer còpies de seguretat de bases de dades mysql.
creat per Joan Quintana Compte, setembre 2018