BBDD (Bases de Dades)
En aquest tema veurem els pricipals gestors de BBDD (Bases de Dades):
• MySQL
• Postgress
Instal·lació
• Mysql:
# apt-get install mysql-server-4.1 mysql-client-4.1 mysql-doc
• Postgres:
# apt-get install postgresql postgresql-client postgresql-doc
Mysql
• Creació d'una base de dades (llibres):
# mysqladmin create llibres
La b.d. es crea (amb usuari i grup propietari mysql) en /var/lib/mysql/llibres
• Eliminació d'una base de dades (llibres):
# mysqladmin drop llibres -p
La b.d. /var/lib/mysql/llibres s'elimina
• Per entrar en la consola mysql:
# mysql
mysql>
• Sel·lecció de la b.d. llibres:
mysql> USE llibres;
• Creació de la taula llibre en la b.d. llibres (SQL):
mysql> CREATE TABLE llibre (Nom VARCHAR(30), Titol VARCHAR(40), Editorial VARCHAR(30));
• Per veure el format de la taula llibre (SQL):
mysql> DESCRIBE llibre;
|-----------|--------------|------|-----|---------|-------|
| Field | Type | Null | Key | Default | Extra |
|-----------|--------------|------|-----|---------|-------|
| Nom | varchar(30) | YES | | NULL | |
| Titol | varchar(40) | YES | | NULL | |
| Editorial | varchar(30) | YES | | NULL | |
|-----------|--------------|------|-----|---------|-------|
• Inserint un registre en la taula llibre (SQL):
mysql> INSERT INTO llibre VALUES ('Joan','Apunts Algebra','2002');
Postgress
• Creació d'una base de dades (llibres):
$ su postgres
Password:
bash-2.05b$ createdb llibres
La b.d. es crea (amb usuari i grup propietari postgres) en /var/lib/postgres/data/base
• Eliminació d'una base de dades (llibres):
$ su postgres
bash-2.05b$ dropdb llibres
La b.d. es borra del directori /var/lib/pgsql/data/base
• Per entrar en la consola postgres:
$ su postgres
bash-2.05b$ psql template1
- - - - - - - - - - - - - - - - - - - - - - - - -
template1=#
• Selecció de la b.d. llibres:
template1=# \c llibres
You are now connected to database llibres.
llibres>
• Entrant en la consola i selecció de la b.d. llibres:
bash-2.05b$ psql llibres
- - - - - - - - - - - - - - - - - - - - - - - - -
llibres>
• Creació de la taula llibre en la b.d. llibres (SQL):
llibres> CREATE TABLE llibre (Nom VARCHAR(30), Titol VARCHAR(40), Editorial VARCHAR(30));
• Per veure el format de la taula llibre:
llibres> \d llibre
Table "public.llibre"
|-----------|-------------|-----------|
| Column | Type | Modifiers |
|-----------|-------------|-----------|
| nom | varchar(30) | |
| titol | varchar(40) | |
| editorial | varchar(30) | |
|-----------|-------------|-----------|
• Inserint un registre en la taula llibre (SQL):
llibres> INSERT INTO llibre VALUES ('Joan','Apunts Algebra','2002');
Altres ordres SQL (mysql i Postgres)
• Per veure tot el contingut de la taula llibre:
llibres> SELECT * FROM llibre;
|------|----------------|-----------|
| nom | titol | editorial |
|------|----------------|-----------|
| Joan | Apunts Algebra | 2002 |
|------|----------------|-----------|
• Per veure els camps nom i titol de la taula llibre:
llibres> SELECT nom,titol FROM llibre;
|------|----------------|
| nom | titol |
|------|----------------|
| Joan | Apunts Algebra |
|------|----------------|
• Per veure totes les BBDD:
llibres> SHOW DATABASES;
|------|----------------|
| Database |
|------|----------------|
| llibres |
|------|----------------|
• Per veure tots els usuaris:
d'un host:
llibres> SELECT USER,'194.168.64.15' FROM mysql.user;
o bé tots els usuaris
llibres> SELECT USER FROM mysql.user;
• Per esborrar un usuari:
llibres> DROP USER 'amsa'@'194.168.64.15';
• Les sentències SQL serveixen tant per MySQL com Postgres
Connexió a un BBDD MySQL remota mitjançant ssh
-
Entrem en MySQL, creem un usuari
amsa
al qual assignarem la IP de la maquina virtual que fa de client (192.168.64.15
) i li donem tots els permisos:# mysql mysql> CREATE USER 'amsa'@'192.168.64.15' IDENTIFIED BY '1234'; mysql> GRANT ALL ON *.* TO 'amsa'@'192.168.64.15'; mysql> FLUSH PRIVILEGES;
-
Permetem connexions al port 3306 (per defecte de MySQL) des de la IP de la màquina client:
# sbin/iptables -A INPUT -p tcp -s 192.168.64.15 --dport 3306 -j ACCEPT
-
Des del client (
192.168.64.15
) fem la connexió remota al servidor (192.168.64.11
) amb l’usuari que hem creat per aquest fi (amsa
), introduim la contrasenya (1234
):# mysql -u amsa -h 192.168.64.11 -p > 1234
-
Entraria'm a la BBDD:
mysql>