Archivo

Archivo para marzo, 2009

Curso MySQL

Lunes, 2 de marzo de 2009

Primer día del curso.

Empezamos la sesión con una copia de maquinas virtuales a partir del disco duro.  Como solo eran 3 GB en una hora y pico se ha solventado el problema.

Una vez que ya tenemos las maquinas virtuales, empezamos con la instalación del MySQL en Windows y Linux.

Acabamos la instalación y  nos vamos al café que ya estamos agotados.

Después del café, empezamos a conocer los comandos básicos de MySQL. Hay cosillas interesantes como los inserts multiples:

INSERT INTO t1 VALUES (value11,value12,…),(value21,value22,…),…

También conocemos los comandos que nos permiten saber quienes somos y donde estamos en el MySQL;

select database();

select user();

select version ();

Ahora vamos a conectarnos al servidor MySQL de forma remota. Aprendemos la forma básica de crearnos un usuario con todos los privilegios:

CREATE USER ‘dbaremote’@'%’ IDENTIFIED BY ‘******’;

GRANT ALL ON *.* to ‘dbaremote’@'%’;

(el que % no incluya a localhost parece que es una característica de MySQL).

Y con esto damos por acabada la sesión de hoy….

Empieza el segundo día.

Empezamos revisando los diferentes métodos de conexión al MySQL (TCP/IP, Unix Socket,…)

Ahora revisamos los diferentes directorios usados por MySQL. También vemos los diferentes ficheros de logs y las cosas que MySQL guarda en memoria.

Ahora toca una revisión más en profundidad del fichero de configuración:

- Configuración del networking

- Configuración de los ficheros de logs

- Configuración de los motores disponibles (podemos consultarlos con la sentencia SQL “show engines;”).

A continuación empezamos a ver temas de motores de MySQL. No todos los motores sirven para la mismo.

Hora del café…

Hacemos pruebas de cambio de tablas entre MyISAM e INNODB. Vemos como el MySQL controla que no se usen características de estos motores antes de hacer el cambio.

Con INNODB se pueden usar constraints.

Ahora reconfiguramos el MySQL para que guarde sus ficheros en otros directorios. Esto nos permitiría separar los logs y los datos en discos distintos, usar almacenamiento externo… La cosa es sencilla, pero como Ubuntu utiliza AppArmor, pues hay que hacer algún paso más de los tradicionales.

Y con esto damos por finalizado el segundo día….

Tercer día del curso.

Empezamos el día conociendo un poco la BD information_schema y viendo las diferencias con el SHOW .. Practicamos una serie de querys para ve que información podemos obtener de la BD information_schema.

Continuamos con la revisión del modelo de privilegios de MySQL.

Ahora vamos a ver como securizar de forma básica un servidor MySQL. Existe un script en el MySQL mysql_secure_installation que hace los pasos básicos de esta labor.

Lo siguiente que nos toca es revisar una serie de herramientas para administrar MySQL:

  • mysqladmin, mysqldump,…
  • MySQL Administrator para monitorizar el servidor, aunque parece tener el problema de que algunas de las funciones se han de ejecutar en local. Parece interesante.
  • MySQL WorkBench para la diseño de BD de forma gráfica.
  • MySQL Migration Tool es una herramienta para migrar BD desde Access, Oracle, SQL Server,…

Vamos a ver temas de backup de MySQL.  Distinción entre backups binarios (copia de ficheros) y backups de texto (dump de la BD). Revisar opciones del mysqldump.

Por último, vemos una rápida visión de la replicación entre MySQL.  Es más o menos lo mismo que he estado usando hasta la fecha.

Y con esto se da por finalizado el curso…

MySQL