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. Está considerada la base de datos de código abierto más popular del mundohttp://db-engines.com/en/ranking y una de las más populares en general, junto a Oracle y Microsoft SQL Server, todas 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.https://monty-says.blogspot.com.es/2009/12/help-saving-mysql.html
Está desarrollado en su mayor parte en ANSI C y C++.https://www.openhub.net/p/mysql/analyses/latest Tradicionalmente se considera uno de los cuatro componentes de las pilas de desarrollo LAMP y WAMP.
MySQL se usa en muchos sitios web grandes y populares, como Wikipedia, Google (aunque no para búsquedas), Facebook, Twitter, Flickr, y YouTube.
Lenguajes de programación Existen varias interfaces de programación de aplicaciones que permiten acceder a las bases de datos MySQL a aplicaciones escritas en diversos lenguajes de programación, incluyendo C, C++, C#, Pascal, Delphi (vía dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas, REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una interfaz de programación de aplicaciones específica. También existe una interfaz ODBC, llamado MyODBC, que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP con el lenguaje ABAP.
Aplicaciones right|thumb|200px|Toma de pantalla programa de Monitoreo Mtop.
MySQL se utiliza mucho en aplicaciones web (Joomla, Wordpress, Drupal, phpBB), en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python) y en herramientas de seguimiento de errores (Bugzilla). Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.
MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programación.mtop: monitoreo de carga en MySQL
Interfaces de usuario
Interfaces gráficas de usuario Una interfaz gráfica de usuario (GUI) es un tipo de interfaz que permite a los usuarios interactuar con dispositivos o programas electrónicos mediante iconos gráficos e indicadores visuales como la notación secundaria, a diferencia de las interfaces basadas en texto, las etiquetas de comandos mecanografiadas o la navegación de texto. Las GUI son más fáciles de aprender que las interfaces de línea de comandos (CLI), que requieren que los comandos se escriban en el teclado.
Se dispone de aplicaciones de administración gráfica (o "frontales") de propiedad de terceros y gratuitas que se integran con MySQL y permiten a los usuarios trabajar con la estructura y los datos de la base de datos de forma visual. Algunos frontales muy conocidos son:
MySQL Workbench MySQL Workbench es el entorno integrado oficial de MySQL. Fue desarrollado por MySQL AB, y permite a los usuarios administrar gráficamente las bases de datos MySQL y diseñar visualmente las estructuras de las bases de datos. MySQL Workbench reemplaza el anterior paquete de software, MySQL GUI Tools. Similar a otros paquetes de terceros, pero aún considerado como el front end autorizado de MySQL, MySQL Workbench permite a los usuarios administrar el diseño y modelado de bases de datos, el desarrollo de SQL (reemplazando al MySQL Query Browser) y la administración de bases de datos (reemplazando al MySQL Administrator).
MySQL Workbench está disponible en dos ediciones, la habitual Edición Comunitaria gratuita y de código abierto que puede descargarse del sitio web de MySQL, y la Edición Estándar patentada que amplía y mejora el conjunto de características de la Edición Comunitaria.
Adminer Adminer (antes conocido como phpMinAdmin) es un front-end gratuito de MySQL para gestionar el contenido de las bases de datos MySQL (desde la versión 2, también funciona en las bases de datos PostgreSQL, Microsoft SQL Server, SQLite y Oracle). El administrador se distribuye bajo la licencia Apache (o GPL v2) en forma de un único archivo PHP (de unos 300 KiB de tamaño), y es capaz de gestionar múltiples bases de datos, con muchas pieles CSS disponibles. Su autor es Jakub Vrána, quien comenzó a desarrollar esta herramienta como una alternativa ligera a phpMyAdmin, en julio de 2007.
ClusterControl ClusterControl es un sistema de administración de MySQL de extremo a extremo que provee la habilidad de desplegar, monitorear, administrar y escalar instancias de MySQL desde una sola interfaz. Es desarrollado por Severalnines.
La versión comunitaria de ClusterControl es de uso libre y permite al usuario desplegar y monitorear sus instancias de MySQL. Las características avanzadas como el balanceo de carga, respaldo y restauración, conmutación por error, etc. son parte de una oferta de pago.
Database Workbench Database Workbench es una aplicación de software para el desarrollo y la administración de múltiples bases de datos relacionales utilizando SQL, con interoperatividad entre diferentes sistemas de bases de datos, desarrollada por Upscene Productions.
Dado que Databases Workbench es compatible con múltiples sistemas de bases de datos, puede proporcionar a los desarrolladores de software la misma interfaz y el mismo entorno de desarrollo para estos sistemas de bases de datos que, de otro modo, serían diferentes, e incluye también herramientas de bases de datos cruzadas.
Database Workbench soporta las siguientes bases de datos relacionales: Oracle Database, Microsoft SQL Server, SQL Anywhere, Firebird, NexusDB, InterBase, MySQL y MariaDB. Database Workbench 5 funciona en plataformas Windows de 32 o 64 bits. Bajo Linux, FreeBSD o macOS Database Workbench puede funcionar con Wine.
DBeaver DBeaver es un cliente SQL y una herramienta de administración de base de datos. DBeaver incluye soporte extendido para las siguientes bases de datos: MySQL y MariaDB, PostgreSQL, Oracle, DB2 (LUW), Exasol, SQL Server, Sybase, Firebird, Teradata, Vertica, Apache Phoenix, Netezza, Informix, Apache Derby, H2, SQLite y cualquier otra base de datos que tenga un controlador JDBC u ODBC. DBeaver es un software libre y de código abierto que se distribuye bajo la licencia Apache 2.0. El código fuente está alojado en GitHub.
DBEdit DBEdit es un editor de base de datos, que puede conectarse a un Oracle, DB2, MySQL y cualquier base de datos que proporcione un controlador JDBC. Funciona en Windows, Linux y Solaris. DBEdit es un software libre y de código abierto y se distribuye bajo la Licencia Pública General GNU. El código fuente está alojado en SourceForge.
HeidiSQL HeidiSQL, anteriormente conocido como MySQL-Front, es un cliente libre y de código abierto, o frontend para MySQL (y para sus bifurcaciones como MariaDB y Percona Server), Microsoft SQL Server y PostgreSQL. HeidiSQL es desarrollado por el programador alemán Ansgar Becker y algunos otros colaboradores en Delphi. Para manejar bases de datos con HeidiSQL, los usuarios deben ingresar a un servidor MySQL local o remoto con credenciales aceptables, creando una sesión. Dentro de esta sesión los usuarios pueden manejar las bases de datos MySQL dentro del servidor MySQL conectado, desconectándose del servidor cuando haya terminado. Su conjunto de características es suficiente para las operaciones más comunes y avanzadas de bases de datos, tablas y registros de datos, pero permanece en desarrollo activo para avanzar hacia la funcionalidad completa que se espera en un Frontend MySQL.
LibreOffice Base La base de LibreOffice permite la creación y gestión de bases de datos, la preparación de formularios e informes que proporcionan a los usuarios finales un fácil acceso a los datos. Al igual que Microsoft Access, puede utilizarse como interfaz para diversos sistemas de bases de datos, incluidas las bases de datos Access (JET), las fuentes de datos ODBC y MySQL o PostgreSQL.
Navicat Navicat es una serie de software de gestión y desarrollo de bases de datos gráficas producido por PremiumSoft CyberTech Ltd. para MySQL, MariaDB, Oracle, SQLite, PostgreSQL y Microsoft SQL Server. Tiene una interfaz gráfica de usuario similar a la de Explorer y admite múltiples conexiones de bases de datos locales y remotas. Su diseño está hecho para satisfacer las necesidades de una variedad de audiencias, desde administradores y programadores de bases de datos hasta diversas empresas/empresas que atienden a los clientes y comparten información con los socios.
Navicat es una herramienta multiplataforma y funciona en plataformas Microsoft Windows, OS X y Linux. En el momento de la compra, los usuarios pueden seleccionar un idioma para el software entre los ocho idiomas disponibles: Inglés, francés, alemán, español, japonés, polaco, chino simplificado y chino tradicional.
OpenOffice.org La base de OpenOffice.org es de libre acceso y puede manejar bases de datos MySQL si se instala toda la suite.
phpMyAdmin phpMyAdmin es una herramienta gratuita y de código abierto escrita en PHP destinada a manejar la administración de MySQL con el uso de un navegador web. Puede realizar diversas tareas como crear, modificar o eliminar bases de datos, tablas, campos o filas; ejecutar sentencias SQL o gestionar usuarios y permisos. El software, que está disponible en 78 idiomas, es mantenido por The phpMyAdmin Project.
Puede importar datos de CSV y SQL, y transformar los datos almacenados en cualquier formato utilizando un conjunto de funciones predefinidas, como la visualización de datos BLOB como imágenes o enlaces de descarga.
SequelPro Sequel Pro es una aplicación MacOS gratuita y de código abierto para trabajar con bases de datos MySQL de forma local o remota. Utiliza el modelo freemium, en el que los usuarios de Gratis están obteniendo características de la mayoría de los servicios básicos. Se necesita una tabla SQL para manejar estas solicitudes. Puede manejar las nuevas y "divertidas" características de UTF-8 para el nuevo unicode, así como tener múltiples tablas de GB sin problemas.
SQLBuddy