Administrar

De access a mysql

xunilung | 11 Octubre, 2006 07:16

Segur que hi ha maneres més elegants i professionals per passar una bd de access a Mysql, emperò aquesta és la forma que jo ho he fet, i m'ha funcionat perfectament.

Començ des de zero, emperò amb llibertat :-).


Problema:
Hi ha una bd "biblioteca.mdb" amb access i la vull passar a mysql per raons evidents. Té unes 7000 entrades. Evidentment no vull picar les dades, per tant hauré d'extreure aquestes dades, i posar-les a un fitxer de text de manera que em quedi una bd "digne".

1.- #apt-get install mdbtools
Amb això instal·laré les eines necessàries per poder extreure les dades de "biblioteca.mdb"

2.- Extreuré l'esquema de totes les taules de la bd original.
xunilung@debi3:~/bdaccess$ mdb-schema biblioteca.mdb mysql > bdaccess_esquema_mysql.sql

3.- Llistar les taules de la biblioteca.mdb
xunilung@debi3:~/bdaccess$ mdb-tables -S -1 biblioteca.mdb > biblioteca.txt

4.- xunilung@debi3:~/bdaccess$ cat biblioteca.txt
Veuré totes les taules. La que m'interessa de moment és la de "Libros"

5.- Extreuré les dades de la taula "Libros"
xunilung@debi3:~/bdaccess$ mdb-export biblioteca.mdb Libros > dadesLibros.sql

6.- Aplicacions-->Debian-->Aplicacions-->Base de dades-->MDB Viewer

Exportar la taula Libros . A Column Separator trio Tab
Millor obrir-lo amb el gedit, seleccionar-ho tot i enganxar al calc.
Una vegada en el calc podem seleccionar les columnes que ens interessin.
Amb load file nom arxiu podem introduir les dades a la bd.

Lo millor és fer-ho tot d'una "tacada" perque si no després tenc problemes.

- Creo la taula a un arxiu de texte (crear-taula.sql):

create table llibres(
idllibre int not null auto_increment primary key,
cat char(3),
titol char(100),
idtema int(3),
isbn char(15),
editorial char(50),
llocedito char(30),
anyedicio year,
numedicio int(3),
coleccio char(50),
pagines int(5),
notes char(200),
dataalta date
);

- La introdueixo dins la bd biblioteca ja creada:
xunilung@debi3:~/biblioteca$ mysql -h localhost -u ubiblioteca -D biblioteca -p < crear-taula.sql
Enter password:

- Introduim les dades dins la taula llibres:
mysql> load data infile "/home/xunilung/biblioteca/introduir-dades-taula-llibres.sql" into table llibres;
Query OK, 7207 rows affected (0.02 sec)
Records: 7207  Deleted: 0  Skipped: 0

- Ja tenim la bd biblioteca amb una sola taula llibres. Ara només queda jugar amb php/mysql per tal de tenir una bd digne. Un altre dia ho contaré

Comentaris

Afegeix un comentari
Amb suport per a Gravatars
 
Powered by Life Type - Design by BalearWeb - Accessible and Valid XHTML 1.0 Strict and CSS