Cuando un software va a tratar con grandes volúmenes de datos es recomendable que haga uso de un sistema gestor de base de datos (SGBD) para facilitar y optimizar el trabajo.
Un SGBD es un software dedicado a servir de interfaz entre las bases de datos, el usuario y las aplicaciones que las utilizan. Debe permitir:
Algunos de los SGBD disponibles en el mercado son: MySQL, PostGreSQL, Oracle, Microsoft Access, SQLite, Firebird, Microsoft SQL Server,... cada uno con sus ventajas e inconvenientes.
MySQL es uno de los SGBD más usados en el mundo, hay más de 6 millones de instalaciones. Almacena los datos en modo de base de datos relacional, es multihilo (permite varias operaciones simultáneas sobre los datos), multiusuario (permite que varios usuarios acceden simultáneamente a los datos), multiplataforma (existen versiones para Windows, GNU/Linux, MacOSX, BSD,...) y se considera software libre siempre y cuando no forme parte de un producto privativo (en cuyo caso deberá pagarse la licencia adecuada).
Está desarrollado en su mayor parte en el lenguaje de programación ANSI C y, entre otras herramientas ofrece varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos que gestiona. Algunos de esos lenguajes son C, C++, C#, Pascal, Delphi, Java, Lisp, Perl, PHP, Python, Ruby, Gambas,..., existiendo una API específica para cada uno.
MySQL es muy utilizado en aplicaciones web debido a que, entre otras ventajas, ofrece una velocidad muy rápida de lectura de datos y una tasa de errores bastante baja siempre y cuando la concurrencia de uso también sea baja. Además es un SGBD muy estable y relativamente fácil de usar.
El sistema MySQL se compone esencialmente de 2 parte bien diferenciadas:
Si deseamos instalar el sistema gestor de base de datos MySQL en nuestro sistema Ubuntu deberemos hacer lo siguiente:
Ahora veamos algunas instrucciones útiles para ejecutar desde una Terminal:
Salu2,
elSant0
Un SGBD es un software dedicado a servir de interfaz entre las bases de datos, el usuario y las aplicaciones que las utilizan. Debe permitir:
- La abstracción de la información relacionada con el modo en que los datos son almacenados.
- La independencia de los datos respecto a las aplicaciones
- Que los datos se almacenen de modo consistente (evitar redundancias, mantener datos sincronizados, controlar datos prohibidos o no válidos,...).
- Que los datos sean almacenados de modo seguro (permisos de usuarios,...).
- Que las transacciones y/o variaciones en los datos se hagan correctamente.
- Que el tiempo necesario para realizar cualquier operación sobre las bases de datos sea mínimo.
Algunos de los SGBD disponibles en el mercado son: MySQL, PostGreSQL, Oracle, Microsoft Access, SQLite, Firebird, Microsoft SQL Server,... cada uno con sus ventajas e inconvenientes.
MySQL es uno de los SGBD más usados en el mundo, hay más de 6 millones de instalaciones. Almacena los datos en modo de base de datos relacional, es multihilo (permite varias operaciones simultáneas sobre los datos), multiusuario (permite que varios usuarios acceden simultáneamente a los datos), multiplataforma (existen versiones para Windows, GNU/Linux, MacOSX, BSD,...) y se considera software libre siempre y cuando no forme parte de un producto privativo (en cuyo caso deberá pagarse la licencia adecuada).
Está desarrollado en su mayor parte en el lenguaje de programación ANSI C y, entre otras herramientas ofrece varias APIs que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos que gestiona. Algunos de esos lenguajes son C, C++, C#, Pascal, Delphi, Java, Lisp, Perl, PHP, Python, Ruby, Gambas,..., existiendo una API específica para cada uno.
MySQL es muy utilizado en aplicaciones web debido a que, entre otras ventajas, ofrece una velocidad muy rápida de lectura de datos y una tasa de errores bastante baja siempre y cuando la concurrencia de uso también sea baja. Además es un SGBD muy estable y relativamente fácil de usar.
El sistema MySQL se compone esencialmente de 2 parte bien diferenciadas:
- El "servidor" (mysql-server) --> Este software se encarga de recoger, interpretar y ejecutar todas las peticiones de datos. En general todas las configuraciones referentes al modo de almacenamiento se encuentran en esta parte.
El acceso a esta parte se gestiona mediante usuarios (con sus diferentes nombres, contraseñas, permisos,...). Existirá un usuario "root" que será el administrador principal de todas las configuraciones y datos. - El "cliente" (mysql-client) --> Este software es el que establece una interfaz entre las aplicaciones que hacen uso de las bases de datos y la parte "servidor". Entre otras herramientas, provee de una consola en modo texto que permite al usuario trabajar con las bases de datos mediante la introducción de sentencias.
Si deseamos instalar el sistema gestor de base de datos MySQL en nuestro sistema Ubuntu deberemos hacer lo siguiente:
- Abrir una Terminal(Aplicaciones->Accesorios->Terminal).
- Instalar los siguientes paquetes:
- mysql-server --> Incluye las dependencias (paquetes necesarios) para instalar la parte "servidor" de MySQL.
- mysql-client --> Incluye las dependencias (paquetes necesarios) para instalar la parte "cliente" de MySQL.
- mysql-server-core-5.1 y mysql-server-5.1 --> Estos paquetes forman la parte "servidor" de MySQL. El 1º incluye los ficheros ejecutables y el 2º toda la infraestructura necesaria.
- mysql-client-core-5.1 y mysql-client-5.1 --> Estos paquetes forman la parte "cliente" de MySQL. El 1º incluye los ficheros ejecutables y el 2º la infraestructura necesaria.
- mysql-common --> Incluye algunos ficheros adicionales (de configuración, bibliotecas de funciones,...) que necesita la parte "cliente".
- libmysqlclient16 --> Otra biblioteca de funciones necesaria para la parte "cliente".
- libdbd-mysql-perl, libdbi-perl, libhtml-template-perl, libplrpc-perl y libnet-daemon-perl --> Forman el API que permite a las aplicaciones desarrolladas en el lenguaje Perl acceder a las bases de datos. Este API es necesaria para compilar la parte "cliente", así como para diversas herramientas de verificación y prueba de rendimiento de MySQL.
~$ sudo apt-get install mysql-sever mysql-client
- Durante la instalación se solicitará una contraseña para el usuario "root" de MySQL. Veremos una pantalla como la siguiente:
Esta contraseña será necesaria para manipular posteriormente la configuración de MySQL así como las bases de datos. Podemos utilizar una contraseña estándar como "admin" (ojo mayúsculas y minúsculas) y posteriormente cambiarla (recuerda hacerlo, ya que la seguridad de tus bases de datos depende fuertemente de este parámetro).
Tras introducir la contraseña una primera vez se volverá a solicitar (para evitar errores): - Comprobamos que fue correctamente instalado y que está corriendo el SGBD en este preciso momento:
Esto deberá mostrar un mensaje similar al siguiente:~$ sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 7686/mysqld
Ahora veamos algunas instrucciones útiles para ejecutar desde una Terminal:
- CAMBIAR CONTRASEÑA DE UN USUARIO DE MySQL (POR EJEMPLO DE "root"):
Donde NOMBRE-DE-USUARIO es el nombre del usuario (por ejemplo "root"), PSW-VIEJO es la contraseña a sustituir y PSW-NUEVO la nueva contraseña.~$ mysqladmin -u NOMBRE-DE-USUARIO -p PSW-VIEJO PSW-NUEVO
En case de que el usuario no tenga contraseña haremos:~$ mysqladmin -u USUARIO password PSW-NUEVO
- VER EL FICHERO DE LOG DE ERRORES RELACIONADOS CON MySQL ("/var/log/mysql/error.log")::
~$ sudo tail -f /var/log/mysql/error.log
- PARA ACCEDER A LA CONSOLA DE LA PARTE "cliente" DE MySQL:
Donde USUARIO será el usuario con el que queremos acceder (por ejemplo "root"). Para completar el acceso se pedirá la contraseña del usuario en cuestión.~$ mysql -u USUARIO -p
Una vez se completa el acceso, la Terminal pasará a mostrar el prompt "mysql>" donde podremos introducir sentencias para que sean ejecutadas por el SGBD.
Algunas e esas sentencias son:- Para salir de la consola de MySQL:
mysql> quit
- Para ver un listado de las bases de datos:
mysql> show databases;
- Para crear una nueva bases de datos:
mysql> create database nombre-base-de-datos;
- Para crear los usuarios que van a utilizar una base de datos y desde donde se les permite acceder:
mysql> GRANT ALL ON nombre-base-de-datos.* TO usuarios@localhost IDENTIFIED BY 'password';
- ...
- Para salir de la consola de MySQL:
Salu2,
elSant0