Introducción
En este minitutorial vamos a intentar instalar la versión 5 de MySQL en Windows. ¿Y por qué vamos a instalar MySQL si tenemos a nuestra disposición otras bases de datos como SQL Server?
Bueno, hay varias razones por las que podemos querer esta base de datos. Veamos unas cuantas:
• Es gratis. Bueno, más o menos. Con el MySQL ocurre como con el Linux. Es gratis bajo ciertas circunstancias, pero para usos comerciales no ocurre lo mismo (De todos modos aun para uso comercial es una solución más barata que otros sistemas de bases de datos)
• Es muy rápido para recuperar información
• Las versiones anteriores (estamos instalando la versión 5) eran perfectamente estables en Windows, con lo que supones que esta también lo será.
• Se puede acceder a ella mediante ODBC (perfecto para todos los programadores) y mediante drivers específicos (muy rápidos) si accedemos desde Visual Basic .NET
• Podemos utilizar integridad referencial
• Podemos utilizar procedimientos almacenados (nuevo en la versión 5)
Hay más ventajas, pero creo que con estas vemos un ejemplo de por qué es una opción a tener en cuenta.
Requisitos
No hace falta gran cosa para instalar MySQL.
En cuanto a hardware no creo que tengáis ningún problema porque supongo que por lo menos partimos de Pentium II y 128 Mb de RAM.
En cuanto a software podemos instalarlo en cualquier versión de Windows de 32 bits, pero obviamente funcionará mucho mejor en un sistema operativo preparado para dar servicios como puede ser Windows 2000 y 2003 Server (Si tenéis 98 o XP no os preocupéis que también sirve).
Necesitamos que esté instalado la pila de protocolos TCP/IP (si estáis viendo esta Web es que tenéis TCP/IP).
Y descargar el Fichero de instalación (www.mysql.com)
Instalación
Empezamos conectándonos al Windows como administradores (para poder instalar sin problemas).
Descomprimimos el archivo de instalación y en la carpeta en cuestión

buscamos el archivo “setup.exe” y hacemos doble clic encima de él para comenzar la instalación.
Aparece la ventana de instalación, aceptamos los contratos, elegimos como carpeta de instalación “c:\mysql” y elegimos la instalación “típica”.

Esperamos un par de minutos y listo.
Configuración
Para empezar con la configuración tenemos que ir hasta la carpeta “C:\mysql\bin” y ejecutamos el archivo “winmysqladmin.exe”.
Nos aparece una ventana en la que tenemos que poner el nombre de usuario y contraseña que queremos utilizar. En mi caso elijo “root” de usuario y nada de contraseña (ya se que no está bien, pero es más fácil)
Una vez hecho esto nos aparece un icono de un semáforo en la parte inferior derecha de la pantalla. Pulsamos sobre él con el botón derecho y del menú desplegable escogemos la opción “SHOW ME”.
Ahora sí tenemos la pantalla de configuración del MySQL. Como podéis ver a continuación

Tiene muchas opciones, pestañas, posibilidades de configuración…pero no tenemos que preocuparnos porque para que esto eche a andar no hay que hacer mucho más.
Esta herramienta nos ayudará de manera sencilla a modificar el archivo “my.ini” que es donde se guarda la configuración del MySQL. El primer paso es seleccionar la solapa “my.ini Setup”. Ahí escogemos “mysqld-max-nt” para instalar el MySQL como servicio y con las opciones enlaces simbólicos, InnoDB, tablas BDB y named pipes activadas.
En esa misma ventana podemos cambiar alguna opción más, pero vamos a dejar el ‘my.ini’ como está.
El último paso es minimizar la ventana y veremos que en el la barra de tarear aparece el icono del MySQL: un semáforo en verde. Si no está verde pulsaremos sobre él con el botón derecho y en la opción “Win NT” escogemos “Start the service”.
Utilización
Ahora que ya está instalado y funcionando hay que empezar a usarlo. No vamos a explicar como utilizar el MySQL, pero si podemos dar unos primeros pasos, y para hacerlo vamos a utilizar la línea de comandos… (en otro momento veremos alguna de las herramientas gráficas para administrar el MySQL, que son muchas)
Abrimos una ventana de línea de comandos y nos vamos a la carpeta “C:\MySQL\bin” y ejecutamos la siguiente sentencia:
mysql --help
Aparece la ayuda y como veis se parece a administrar cualquier herramienta de Linux así que con un poco de paciencia…
Para conectarnos a un servidor escribimos la siguiente sentencia:
mysql –h localhost –u root –p
pero en nuestro caso como estamos corriendo el cliente en el mismo equipo en el que está instalado el servidor sin más ponemos
mysql –u root
y nos aparece el promt del MySQL
C:\mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.0.0-alpha-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Ahora estamos dentro y podemos empezar a ejecutar sentencias SQL (recordad que aquí obligatoriamente tenemos que terminar las sentencias con ;)
mysql> select current_date();
+----------------+
| current_date()|
+----------------+
| 2004-03-01 |
+----------------+
1 row in set (0.00 sec)
mysql>
Para aquellos que habéis usado el isql (o el osql) no representará ninguna dificultad usar esta herramienta.
Vamos a pedir algo más interesante. ¿Es esta realmente la versión 5 del MySQL?
mysql> select version();
+-----------------+
| version() |
+-----------------+
| 5.0.0-alpha-nt |
+-----------------+
1 row in set (0.01 sec)
mysql>
Lo es.
Bueno, ya sabemos mandar órdenes a la base de datos y ver sus respuestas. Ahora hay que dar un paso más. Vamos a crear una base de datos, a poblarla y recuperar información de ella. Por supuesto seguimos con ejemplos simples así que vamos a crear una única tabla para almacenar información sobre personas.
Vamos a ver que bases de datos hay actualmente en el sistema
mysql> show databases;
+------------+
| Database |
+------------+
| MySQL |
| test |
+------------+
1 row in set (0.00 sec)
Ya existen un par de bases de datos. Una de configuración del propio MySQL y otra de pruebas. Pero no nos interesa ninguna así que pasemos a crear la nuestra. Para crearla tenermo el comando CREATE DATABASE del SQL.
mysql> create database personas;
Query OK, 1 row affected (0.00 sec)
Ya está creada la base de datos personas (no hace gran cosa, crea una carpeta, un archivo y nada más). A continuación hay que decidir utilizar esa base y con el comando USE cambiamos de contexto.
mysql> use personas
Database changed
Y miramos que hay dentro con el comando SHOW
mysql> show tables;
Empty set (0.00 sec)
Nada obviamente. Pues vamos a crear nuestra primera tabla.
Para hacerlo hay una sentencia de lenguaje de definición de datos que es CREATE TABLE (todas estas sentencias las podéis encontrar en algún tutorial de la sección tutoriales)
mysql> create table personas(
-> nombre varchar(20),
-> apellido varchar(20),
-> fechanacimiento date);
Query OK, 0 rows affected (0.13 sec)
En este caso hemos escrito la instrucción en varias filas por comodidad. El interfaz para ejecutar comandos permite escribir instrucciones en varias líneas mostrándonos los caracteres ‘->’ para indicar que la instrucción no ha acabado. En cuanto ponemos el ; se ejecuta la sentencia (como el GO del SQL Server)
Veamos que funciona.
mysql> show tables;
+-----------------------+
| Tables_in_personas |
+-----------------------+
| personas |
+-----------------------+
1 row in set (0.00 sec)
Y para ver las características de una tabla tenemos la sentencia DESCRIBE
mysql> describe personas;
+-------------------+----------------+------+-----+---------+--------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+----------------+------+-----+---------+--------+
| nombre | varchar(20) | YES | | NULL | |
| apellido | varchar(20) | YES | | NULL | |
| fechanacimiento | date | YES | | NULL | |
+-------------------+----------------+-------+-----+---------+-------+
3 rows in set (0.00 sec)
Bueno. Ahora toca insertar datos en la tabla. Y como el MySQL utiliza lenguaje SQL estándar es sencillo.
mysql> insert into personas values ('Luis','Lopez','1980/1/10');
Query OK, 1 row affected, 1 warning (0.00 sec)
Y para ver si ha funcionado.
mysql> select * from personas;
+---------+----------+--------------------+
| nombre | apellido | fechanacimiento |
+---------+----------+--------------------+
| Luis | Lopez | 1980-01-10 |
+----------+----------+-------------------+
1 row in set (0.00 sec)
Bueno, ya tenemos el servidor funcionando. Hay mucho, muchísimo más que decir del MySQL pero ahora ya podemos empezar a hacer pruebas de lenguaje SQL, tanto DDL como DML que como sabéis funciona de igual manera en todos (o debería) los sistemas gestores de bases de datos relacionales.
ir a segunda parte