MySQL es un sistema de gestión de bases de datos relacional desarrollado bajo licencia dual: Licencia pública general/Licencia comercial por Oracle Corporation y está considerada como la base de datos de código abierto más popular del mundo, y una de las más populares en general junto a Oracle y Microsoft SQL Server, sobre todo para entornos de desarrollo web.
MySQL fue inicialmente desarrollado por MySQL AB (empresa fundada por David Axmark, Allan Larsson y Michael Widenius). MySQL AB fue adquirida por Sun Microsystems en 2008, y ésta a su vez fue comprada por Oracle Corporation en 2010, la cual ya era dueña desde 2005 de Innobase Oy, empresa finlandesa desarrolladora del motor InnoDB para MySQL.
Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y los derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de doble licenciamiento anteriormente mencionado. La base de datos se distribuye en varias versiones, una Community, distribuida bajo la Licencia pública general de GNU, versión 2, y varias versiones Enterprise, para aquellas empresas que quieran incorporarlo en productos privativos. Las versiones Enterprise incluyen productos o servicios adicionales tales como herramientas de monitorización y asistencia técnica oficial. En 2009 se creó un fork denominado MariaDB por algunos desarrolladores (incluido algunos desarrolladores originales de MySQL) descontentos con el modelo de desarrollo y el hecho de que una misma empresa controle a la vez los productos MySQL y Oracle Database.
Está desarrollado en su mayor parte en ANSI C y C++. Tradicionalmente se considera uno de los cuatro componentes de la pila de desarrollo LAMP y WAMP.
MySQL es usado por muchos sitios web grandes y populares, como Wikipedia, Google (aunque no para búsquedas), Facebook, Twitter, Flickr y YouTube.
Vamos a ver cuales serían los pasos para crear una base de datos MySQL.
En primer lugar, como siempre, actualizaremos el sistema:
apt-get update
apt-get upgrade
Ahora instalaremos MySQL:
apt-get install mysql-server mysql-client mysql-common
Iniciamos el servicio con:
/etc/init.d/mysql start
Si queremos comprobar el estado lo podemos hacer con:
service mysql status
Podemos acceder los archivos de configuración de mysql en:
/etc/mysql/my.cnf
Para acceder a mysql:
mysql -u root
El usuario que viene por defecto y sin contraseña es root, algo que debemos cambiar como medida de seguridad. Para cambiarlo vamos a usar este comando:
grant all privileges on *.* to root@localhost identified by ‘123456’ with grant option;
Donde:
grant all privileges on con esto le damos privilegios de usuario administrador
*.* a todas las bases de datos y tablas
root@localhost al usuario root
identified by identificado como
‘123456’ la contraseña que queramos poner
with grant option; con la opción de modificar y crear nuevos usuarios.
Es importante observar que en la respuesta nos de Query OK para cada consulta que hagamos:
Si ahora salimos con quit:
y volvemos a entrar identificándonos:
mysql -u root -p
ya podemos crear una base de datos. En mi caso voy a crear una base de datos que se llame “datos”. Siempre debemos cerrar la orden con un punto y coma:
create database datos;
Para acceder a la base de datos que hemos creado lo haremos con use seguido del nombre de la base de datos:
use datos;
ya estamos dentro de nuestra base de datos y vamos a crear una tabla con el comando create table seguido del nombre de la tabla que queramos crear y entre paréntesis pondremos las variables:
create table tabla1( numero int not null primary key , nombre varchar(30) , apellido varchar(30) );
int sería para indicar que deben ser números enteros por lo que no aceptará otro valor que no sea un número.
Not null para que el valor no pueda ser 0
primary key para indicar que este será el campo clave
varchar para almacenar series de caracteres de hasta 255 bytes en un campo de longitud variable.
(30) para indicarle que no queremos que tenga más de 30 caracteres.
Ahora vamos a meter los registros con insert into:
insert
into tabla1 (numero , nombre , apellido)
values (‘1’ , ‘garcia’ , ‘sanchez’);
si os da algún error probablemente sea porque hay que usar la comilla simple.
Podemos introducir más registros de la misma manera:
insert
into tabla1 (numero , nombre , apellido)
values (‘2’ , ‘lopez’ , ‘perez’);
si queremos ver la tabla que hemos creado lo haremos con show tables;:
y si queremos ver las bases de datos lo hacemos con show databases; :
si queremos crear un usuario por ejemplo “user” con privilegios sobre la tabla1 (y solo sobre la tabla1) lo haremos de la siguiente manera:
grant all on tabla1.* to user@localhost identified by ‘lacontraseñaquequeramos’;
para que esos privilegios que hemos dado se apliquen de forma inmediata lo hacemos con flush privileges; :
Para realizar búsquedas utilizamos el comando select :
select
numero
from
tabla1
where numero = 2;
si queremos una descripción de los campos de nuestra tabla usamos el comando describe :
describe tabla1;
para insertar valores en los campos de la tabla:
insert
into tabla1 (numero) values(17);
lo que introducirá el valor 17 dentro del campo número en la tabla1.
Si queremos ver todo lo que hay en la tabla1 usamos select * from :
select * from tabla1;
como hemos creado el número 17 pero no le hemos asignado ningún valor dentro de la tabla aparecen en blanco (null).