Title: Uso de Putty para administrar MySQL
Course: 2025 - LISI - Curso de Ejemplo > Section: Unidad II. Modelo de Referencia OSI y Protocolos

En programación es prácticamente inevitable trabajar con algún tipo de sistema de gestión de bases de datos. Cualquier programa que imaginemos tarde o temprano necesitará almacenar datos en algún lugar, como mínimo para poder almacenar la lista de usuarios autorizados, sus permisos y propiedades.

MySQL es el sistema de gestión de bases de datos relacional más extendido en la actualidad al estar basada en código abierto. Desarrollado originalmente por MySQL AB, fue adquirida por Sun MicroSystems en 2008 y esta su vez comprada por Oracle Corporation en 2010, la cual ya era dueña de un motor propio InnoDB para MySQL.

MySQL es un sistema de gestión de bases de datos que cuenta con una doble licencia. Por una parte es de código abierto, pero por otra, cuenta con una versión comercial gestionada por la compañía Oracle.

Las versiones Enterprise, diseñadas para aquellas empresas que quieran incorporarlo en productos privativos, incluyen productos o servicios adicionales tales como herramientas de monitorización y asistencia técnica oficial.

Características de MySQL

MySQL presenta algunas ventajas que lo hacen muy interesante para los desarrolladores. La más evidente es que trabaja con bases de datos relacionales, es decir, utiliza tablas múltiples que se interconectan entre sí para almacenar la información y organizarla correctamente.

Al ser basada en código abierto es fácilmente accesible y la inmensa mayoría de programadores que trabajan en desarrollo web han pasado usar MySQL en alguno de sus proyectos porque al estar ampliamente extendido cuenta además con una ingente comunidad que ofrece soporte a otros usuarios. Pero estas no son las únicas características como veremos a continuación:

1. Arquitectura Cliente y Servidor: MySQL basa su funcionamiento en un modelo cliente y servidor. Es decir, clientes y servidores se comunican entre sí de manera diferenciada para un mejor rendimiento. Cada cliente puede hacer consultas a través del sistema de registro para obtener datos, modificarlos, guardar estos cambios o establecer nuevas tablas de registros, por ejemplo.
2. Compatibilidad con SQL: SQL es un lenguaje generalizado dentro de la industria. Al ser un estándar MySQL ofrece plena compatibilidad por lo que si has trabajado en otro motor de bases de datos no tendrás problemas en migrar a MySQL.
3. Vistas: Desde la versión 5.0 de MySQL se ofrece compatibilidad para poder configurar vistas personalizadas del mismo modo que podemos hacerlo en otras bases de datos SQL. En bases de datos de gran tamaño las vistas se hacen un recurso imprescindible.
4. Procedimientos almacenados. MySQL posee la característica de no procesar las tablas directamente sino que a través de procedimientos almacenados es posible incrementar la eficacia de nuestra implementación.
5. Desencadenantes. MySQL permite además poder automatizar ciertas tareas dentro de nuestra base de datos. En el momento que se produce un evento otro es lanzado para actualizar registros o optimizar su funcionalidad.
6. Transacciones. Una transacción representa la actuación de diversas operaciones en la base de datos como un dispositivo. El sistema de base de registros avala que todos los procedimientos se establezcan correctamente o ninguna de ellas. En caso por ejemplo de una falla de energía, cuando el monitor falla u ocurre algún otro inconveniente, el sistema opta por preservar la integridad de la base de datos resguardando la información.

Ventajas de usar MySQL

Descritas las principales características de MySQL es fácil ver sus ventajas. MySQL es una opción razonable para ser usado en ámbito empresarial. Al estar basado en código abierto permite a pequeñas empresas y desarrolladores disponer de una solución fiable y estandarizada para sus aplicaciones. Por ejemplo, si se cuenta con un listado de clientes, una tienda online con un catálogo de productos o incluso una gran selección de contenidos multimedia disponible, MySQL ayuda a gestionarlo todo debida y ordenadamente.

Historia y versiones de MySQL

La historia de MySQL comienza cuando Michael Widenius, un programador de software, buscaba una solución sencilla que permitiera dar salida a sus proyectos sin recurrir a soluciones de terceros. Al comienzo MySQL carecía de elementos considerados esenciales como la integridad referencial y transacciones pero a pesar de ello atrajo rápidamente a desarrolladores web.

Esto dió lugar a la fundación de la empresa MySQL AB (empresa fundada por David Axmark, Allan Larsson y Michael Widenius) para dar continuidad al proyecto. Posteriormente la empresa fue adquirida por Sun MicroSystems en 2008 quien vió en MySQL una solución para competir con su competidor Oracle quien, curiosamente, acabó por hacerse con la compañía en 2010.

Desde 1995, momento en el que la compañía de software de MySQL AB creó la versión original hasta hoy MySQL ha ido evolucionando incorporando nuevas funciones. En 1999, se lanzó la versión 3.23.0, la primera versión en importancia a la que luego siguieron otras como las versiones 5.0.0, liberada en 2005, y la 5.5.x que fue lanzada en diciembre de 2009.

Principales sentencias de MySQL

MySQL comparte las sentencias del lenguaje SQL. Lo que en la práctica se traduce en una plena compatibilidad. Al ser un elemento muy ligado al backend de cualquier aplicación web, normalmente desarrollada sobre algún lenguaje como PHP, puede ser un poco difícil de ejemplificar pues sería necesario abarcar todo un artículo pero se puede realizar la siguiente relación de sentencias básicas:

- SELECT es usada para consultar datos.
- DISTINCT Sirve para eliminar los duplicados de las consultas de datos.
- WHERE Es usada incluir las condiciones de los datos que queremos consultar.
- AND y OR es usada para incluir 2 o más condiciones a una consulta.
- ORDER BY Es usada para ordenar los resultados de una consulta.
- INSERT Es usada para insertar datos.
- UPDATE Es usada actualizar o modificar datos ya existentes.
- DELETE Es usada borrar datos.

Por ejemplo y para mostrar cómo funciona su sintaxis lo mejor es ver un ejemplo con SELECT. Es sin duda el comando más versátil del lenguaje SQL.

SELECT *
FROM Nombre_Tabla_Vista
WHERE Condiciones
ORDER BY ListaColumnas [ ASC / DESC ]

Por ejemplo:

SELECT nombre, apellido1, apellido2 FROM personas

nombre | apellido1 | apellido2
JUAN | MATEOS | MENDEZ
MARIA | GARCIA | BENITO
LUIS | GARCIA | MATEOS

Ejemplo con Distinct

Al realizar una consulta puede ocurrir que existan valores repetidos para algunas columnas. Por ejemplo

SELECT nombre FROM personas

NOMBRE
EVA
LUIS
EVA

Esto no es un problema, pero a veces queremos que no se repitan, por ejemplo, si queremos saber los nombre diferentes que hay en la tabla personas”, entonces utilizaremos DISTINCT.

SELECT DISTINCT nombre FROM personas

nombre
EVA
LUIS

Ejemplo con WHERE

La cláusula WHERE es usada para hacer filtros en las consultas, es decir, seleccionar solamente algunas filas de la tabla que cumplan una determinada condición.

El valor de la condición debe ir entre comillas simples ”. Por ejemplo:

Seleccionar las personas cuyo nombre sea EVA

SELECT * FROM personas WHERE nombre = EVA

nombre | apellido1 | apellido2
EVA | MATEOS | GUTIERREZ
EVA | BENITO | BENITO

Ejemplo con AND y OR

Los operadores AND y OR son usados para filtrar resultados con 2 condiciones. Así, el operador AND mostrará los resultados si se cumplan las 2 condiciones.

Condición1 AND condición2

Mientras que el operador OR mostrará los resultados cuando se cumpla alguna de las 2 condiciones.

Condicion1 OR condicion2

Por ejemplo en la tabla personas:

nombre | apellido1 | apellido2
EVA | MATEOS | GUTIERREZ
EVA | BENITO | BENITO
LUIS | LOPEZ | MATEOS

La siguiente sentencia (ejemplo AND) dará el siguiente resultado:

SELECT * FROM personas WHERE nombre = ‘EVA’ AND apellido1 = ‘GARCIA’

nombre | apellido1 | apellido2
EVA | GARCIA | BENITO

Ejemplo con ORDER BY

ORDER BY es usada para ordenar los resultados de una consulta, según el valor de la columna especificada. Por ejemplo:

SELECT nombre, apellido1 FROM personas ORDER BY apellido1 ASC

nombre | apellido1
LUIS | LOPEZ
EVA | GARCÍA
EVA | MATEOS

SELECT nombre, apellido1 FROM personas ORDER BY apellido1 DESC

nombre | apellido1
EVA | MATEOS
EVA | GARCIA
LUIS | LOPEZ

Ejemplo con INSERT

La sentencia INSERT INTO es usada para insertar nuevas filas en una tabla. Si queremos insertar una nueva fila en la tabla personas, lo podemos hacer con cualquiera de las dos sentencias siguientes:

INSERT INTO personas VALUES (‘PEDRO’, ‘RUIZ’, ‘GONZALEZ’)

INSERT INTO personas (nombre, apellido1, apellido2) VALUES (‘PEDRO’, ‘RUIZ’, ‘GONZALEZ’)

Ejemplo con UPDATE

La sentencia UPDATE es usada para modificar valores en una tabla.

Ejemplo del uso de SQL UPDATE

UPDATE personas SET apellido2 = ‘RODRIGUEZ’ WHERE nombre = ‘ANTONIO’ AND apellido1 = ‘GARCIA’ AND apellido2 = ‘BENITO’

Ejemplo con DELETE

La sentencia DELETE es usada para BORRAR valores en una tabla. Por ejemplo:

DELETE FROM personas WHERE nombre = ‘LUIS’ AND apellido1 = ‘LOPEZ’ AND apellido2 = ‘MATEOS’

Conectarse a una base de datos vía SSH

Conectarte desde una cuenta shell

1. Para iniciar sesión en tu base de datos MySQL, necesitarás las credenciales de tu base de datos. Consulta el artículo Encontrar las credenciales de tu base de datos para obtener instrucciones. También puedes encontrarlas en el panel bajo Bases de Datos MySQL.
2. A continuación, necesitarás una terminal para ejecutar el siguiente comando. Puedes hacer esto en un computador Mac o Linux utilizando el terminal nativo, o simplemente podrías iniciar sesión en tu servidor web DreamHost a través de SSH. Si estás en Windows, usa PuTTY para conectarte a tu servidor DreamHost, luego ejecuta el siguiente comando.
3. Asegúrete de usar tus credenciales correctos para las siguientes variables:
  - hostname - Tu URL de hostname mysql. Aparecerá como mysql.example.com
  - user - Tu nombre de usuario de la base de datos.
  - password - La contraseña de tu nombre de usuario de la base de datos.
  - database - El nombre de la base de datos.

[server]$ mysql -h hostname -u user -p database

4. A continuación, se te solicitará tu contraseña para iniciar sesión.
5. Una vez que hayas iniciado sesión, tu símbolo del sistema cambiará al siguiente:

mysql>

No puedes usar "localhost" para conectarte a tu base de datos, ya que los servidores MySQL de DreamHost están separados de los servidores de sitios web normales.

Cliente mysql MariaDB usado en un VPS

Si tienes un VPS, MariaDB se usa como cliente mysql cuando se conecta. Todos los comandos de MySQL continúan funcionando igual, la única diferencia es el texto que aparece cuando se conecta originalmente al servidor de la base de datos. Por ejemplo:

[server]$ mysql -h hostname -u username -p password database

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 38309156
Server version: 5.7.28-log Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [database]>