OCULTAR MENU LATERAL >>

Instalar y configurar el gestor de bases de datos MySQL en Ubuntu

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:
  • 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.
Lógicamente para conseguir todo esto deben regirse por un método de creación, almacenamiento, manipulación y eliminación de los datos y ofrecer todas las herramientas necesarias para hacerlo. Y cada SGBD utilizará sus propios métodos.

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.
Ambos componentes pueden instalarse juntos en un mismo equipo o por separado en diferentes máquinas. Esto permite, por ejemplo establecer varias computadoras con el software "cliente" que acceden a una única máquina con el software "servidor".

Si deseamos instalar el sistema gestor de base de datos MySQL en nuestro sistema Ubuntu deberemos hacer lo siguiente:
  1. Abrir una Terminal(Aplicaciones->Accesorios->Terminal).
  2. 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.
    Estos 2 paquetes añadirán a la instalación, debido a las dependencias, estos otros:
    • 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
  3. 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):
  4. Comprobamos que fue correctamente instalado y que está corriendo el SGBD en este preciso momento:
     ~$ sudo netstat -tap | grep mysql
    Esto deberá mostrar un mensaje similar al siguiente:
    tcp     0   0    localhost:mysql  *:*      LISTEN  7686/mysqld
Y con eso ya tenemos el SGBD MySQL instalado y corriendo en nuestro equipo.

Ahora veamos algunas instrucciones útiles para ejecutar desde una Terminal:
  • CAMBIAR CONTRASEÑA DE UN USUARIO DE MySQL (POR EJEMPLO DE "root"):
     ~$ mysqladmin -u NOMBRE-DE-USUARIO -p PSW-VIEJO PSW-NUEVO
    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.
    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:
     ~$ mysql -u USUARIO -p
    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.
    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';
    • ...
Podemos obtener más información al respecto en la web oficial con el Manual de referencia de MySQL Server.


Salu2,
elSant0

ALGUNOS ARTICULOS RELACIONADOS

1comentarios:

Anónimo dijo...

Hasta ahora no he encontrado una nueva herramienta genial para trabajar con MySQL en ubuntu - Valentina Studio. Es la edición gratuita puede hacer las cosas más de las muchas herramientas comerciales!
¡Muy recomendable comprobarlo. http://www.valentina-db.com/en/valentina-studio-overview

Publicar un comentario

Escribe aquí tus valoraciones, dudas, sugerencias,... Son sólo unos instantes y ayuda a mejorar el blog.