¿Qué es MySQL? ¿Cómo funciona MySQL?


MySQL es el sistema de gestión de bases de datos relacionales de código abierto (RDBMS) de nivel empresarial más popular del mundo que se utiliza en Facebook, Google, Adobe, Alcatel Lucent y Zappos, y en muchos sitios web/aplicaciones en línea.

Está desarrollado, distribuido y respaldado por Oracle Corporation. Es una base de datos relacional multiplataforma, potente, flexible y extensible que se basa en el lenguaje estandarizado SQL (Structured Query Language) utilizado para crear y manipular bases de datos.

La última versión de MySQL (versión 8.0 en el momento de escribir este artículo) viene con soporte para bases de datos de documentos NoSQL ("No solo SQL"). Se puede instalar en Linux, macOS y otros sistemas operativos similares a UNIX y Windows.

  • Descargar MySQL Community Edition
  • Descargar MySQL Enterprise Edition

El software de la base de datos MySQL es de código abierto, utiliza la GPL (Licencia pública general GNU). Es importante destacar que se ofrece en dos ediciones diferentes: el servidor comunitario MySQL de código abierto que puede descargar, acceder al código fuente y usar de forma gratuita y la edición patentada MySQL Enterprise y otros productos comerciales que requieren suscripción anual e incluyen soporte profesional y muchos otros beneficios.

MySQL se utiliza para una amplia gama de propósitos, incluida la base de datos web (el uso más común), almacenamiento de datos, comercio electrónico y aplicaciones de registro. Es uno de los software comúnmente instalados para configurar una pila LAMP (Linux + Apache + MySQL + PHP) o LEMP (Linux + Engine-X + MySQL + PHP) utilizada para el desarrollo web y el alojamiento de sistemas de gestión de contenido en línea como WordPress, Magneto, Joomla, Drupal y muchos otros. Además de PHP, también es compatible con muchos otros lenguajes, incluidos Perl, Node.js, Python, etc.

Consulte estas guías relacionadas para configurar su aplicación con la base de datos MySQL en Linux.

  • Cómo instalar el servidor LAMP en CentOS 8
  • Cómo instalar LEMP Server en CentOS 8
  • Cómo instalar LAMP Stack con PhpMyAdmin en Ubuntu 20.04
  • Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04
  • Cómo instalar WordPress con Apache en Ubuntu 20.04

¿Cómo funciona MySQL?

Como la mayoría de los sistemas de administración de bases de datos, MySQL tiene una arquitectura cliente-servidor y se puede usar en un entorno de red. El programa servidor reside en el mismo sistema físico o virtual donde se almacenan los archivos de la base de datos y es responsable de todas las interacciones con las bases de datos.

Varios programas cliente, como las herramientas MySQL para la administración de bases de datos o cualquier aplicación que esté escrita en otros lenguajes de programación, pueden conectarse al servidor y realizar solicitudes de base de datos. El servidor procesa las solicitudes del cliente y devuelve los resultados al cliente.

Un cliente puede residir en el mismo sistema que el servidor o en un host remoto y enviar solicitudes de base de datos a través de una red o conexión a Internet al servidor. Es importante destacar que el servidor MySQL debe estar ejecutándose para que los clientes se conecten a él.

Características clave de MySQL

MySQL utiliza un diseño de servidor de varias capas con módulos independientes. El servidor es multiproceso, multiusuario, escalable y robusto diseñado para sistemas de producción de carga pesada y de misión crítica. Proporciona motores de almacenamiento transaccionales y no transaccionales y admite la adición de otros motores de almacenamiento.

  • MySQL usa tablas de árbol B muy rápidas con compresión de índice, un sistema de asignación de memoria basado en subprocesos muy rápido y ejecuta uniones muy rápidas utilizando uniones de bucle anidado optimizadas.
  • Admite muchos tipos de datos, como enteros con/sin signo, tipos de punto flotante (flotante y doble), char y varchar, binary y varbinary, blob y texto, Date, DateTime y timestamp, year, set, enum, y tipos espaciales OpenGIS.
  • MySQL también admite redundancia de datos y alta disponibilidad (HA) a través de la replicación maestro-esclavo, agrupación en clústeres de múltiples nodos y respaldo y recuperación/restauración. Ofrece una amplia gama de tipos de copias de seguridad y estrategias entre las que puede elegir los métodos que mejor se adapten a los requisitos de su implementación.
  • Sus características de seguridad incluyen administración de cuentas de usuario y control de acceso, verificación basada en host, conexiones cifradas, varios componentes y complementos (como complementos de autenticación, complementos de control de conexión, componente de validación de contraseña y muchos más) que implementan la seguridad, como así como el modo FIPS (Estándares federales de procesamiento de información 140-2 (FIPS 140-2)) en el lado del servidor que se aplica a las operaciones criptográficas realizadas por el servidor.

Además, también puede garantizar seguridad adicional siguiendo las mejores prácticas de seguridad de MySQL/MariaDB para Linux. Pero, como siempre, asegúrese de haber implementado una buena seguridad de red y servidor para garantizar la seguridad integral del servidor de bases de datos.

Cliente y herramientas MySQL

MySQL se envía con varios programas cliente, como las populares utilidades de línea de comandos: mysql, mysqldump, para administrar bases de datos. Para conectarse al servidor MySQL, los clientes pueden utilizar varios protocolos, por ejemplo, sockets TCP/IP en cualquier plataforma o sockets de dominio UNIX en sistemas UNIX como Linux.

Para conectar y ejecutar declaraciones MySQL desde otro lenguaje o entorno, existen conectores MySQL basados en estándares (que brindan conectividad al servidor MySQL para aplicaciones cliente) y API para los lenguajes de programación más populares (para brindar acceso de bajo nivel a recursos MySQL usando ya sea el protocolo MySQL clásico o el Protocolo X).

Algunos de los conectores y API más populares incluyen ODBC (Conectividad abierta de bases de datos), Java (JDBC - Conectividad de bases de datos Java), Python, PHP, Node.js, C ++, Perl, Ruby y C nativa e instancias de MySQL incrustadas.

Encontrará útiles los siguientes artículos sobre MySQL:

  • Cómo instalar la última versión de MySQL 8 en Debian 10
  • 15 consejos útiles de optimización y ajuste del rendimiento de MySQL/MariaDB
  • Consejos útiles para solucionar errores comunes en MySQL
  • Cómo restablecer la contraseña de root en MySQL 8.0
  • Cómo cambiar el puerto predeterminado de MySQL/MariaDB en Linux
  • 4 herramientas de línea de comandos útiles para monitorear el rendimiento de MySQL en Linux