![]() | |
| |
Autor (es) original (es) | MySQL AB |
---|---|
Desarrollador (es) | Oracle Corporation |
Versión inicial | 23 de mayo de 1995 ; Hace 26 años ( 23 de mayo de 1995) |
Lanzamiento estable | 8.0.26 ![]() |
Repositorio | |
Escrito en | C, C ++ |
Sistema operativo | Linux, Solaris, macOS, Windows, FreeBSD |
Disponible en | inglés |
Escribe | RDBMS |
Licencia | GPLv2 o propietario |
Sitio web | www.mysql.com ![]() |
MySQL ( / ˌ m aɪ ˌ ɛ s ˌ k Ju ɛ l / ) es una de código abierto sistema de gestión de base de datos relacional (RDBMS). Su nombre es una combinación de "My", el nombre de la hija del cofundador Michael Widenius, y " SQL ", la abreviatura de Structured Query Language. Una base de datos relacional organiza los datos en una o más tablas de datos en las que los tipos de datos pueden estar relacionados entre sí; estas relaciones ayudan a estructurar los datos. SQL es un lenguaje que utilizan los programadores para crear, modificar y extraer datos de la base de datos relacional, así como para controlar el acceso de los usuarios a la base de datos. Además de las bases de datos relacionales y SQL, un RDBMS como MySQL funciona con un sistema operativo para implementar una base de datos relacional en el sistema de almacenamiento de una computadora, administra a los usuarios, permite el acceso a la red y facilita las pruebas de integridad de la base de datos y la creación de copias de seguridad.
MySQL es un software gratuito y de código abierto bajo los términos de la Licencia Pública General GNU y también está disponible bajo una variedad de licencias propietarias. MySQL era propiedad y estaba patrocinado por la empresa sueca MySQL AB, que fue comprada por Sun Microsystems (ahora Oracle Corporation ). En 2010, cuando Oracle adquirió Sun, Widenius bifurcó el proyecto MySQL de código abierto para crear MariaDB.
MySQL tiene clientes independientes que permiten a los usuarios interactuar directamente con una base de datos MySQL usando SQL, pero más a menudo, MySQL se usa con otros programas para implementar aplicaciones que necesitan capacidad de base de datos relacional. MySQL es un componente de la pila de software de aplicación web LAMP (y otros ), que es un acrónimo de Linux, Apache, MySQL, Perl / PHP / Python. MySQL es utilizado por muchas aplicaciones web basadas en bases de datos, incluyendo Drupal, Joomla, phpBB y WordPress. MySQL también es utilizado por muchos sitios web populares, incluidos Facebook, Flickr, MediaWiki, Twitter y YouTube.
MySQL está escrito en C y C ++. Su analizador SQL está escrito en yacc, pero utiliza un analizador léxico de fabricación casera. MySQL funciona en muchas plataformas de sistema, incluidas AIX, BSDi, FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, IRIX, Linux, macOS, Microsoft Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS / 2 Warp, QNX, Oracle Solaris, Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos y Tru64. También existe un puerto de MySQL a OpenVMS.
El propio software del servidor MySQL y las bibliotecas cliente utilizan la distribución de licencia dual. Se ofrecen bajo GPL versión 2 o una licencia propietaria.
Se puede obtener soporte en el manual oficial. Además, el soporte gratuito está disponible en diferentes canales y foros de IRC. Oracle ofrece soporte de pago a través de sus productos MySQL Enterprise. Se diferencian en el alcance de los servicios y en el precio. Además, existen varias organizaciones de terceros para brindar soporte y servicios.
MySQL ha recibido críticas positivas, y los revisores notaron que "funciona extremadamente bien en el caso promedio" y que "las interfaces de desarrollador están ahí, y la documentación (sin mencionar los comentarios en el mundo real a través de sitios web y similares) es muy, muy bien". También se ha probado que es un "servidor de base de datos SQL multiproceso rápido, estable y verdadero".
MySQL fue creado por una empresa sueca, MySQL AB, fundada por los suecos David Axmark, Allan Larsson y el sueco finlandés Michael "Monty" Widenius. El desarrollo original de MySQL por Widenius y Axmark comenzó en 1994. La primera versión de MySQL apareció el 23 de mayo de 1995. Se creó inicialmente para uso personal a partir de mSQL basado en el lenguaje de bajo nivel ISAM, que los creadores consideraron demasiado lento e inflexible. Crearon una nueva interfaz SQL, manteniendo la misma API que mSQL. Al mantener la API consistente con el sistema mSQL, muchos desarrolladores pudieron usar MySQL en lugar del antecedente mSQL (con licencia propia).
Hitos adicionales en el desarrollo de MySQL incluyeron:
Liberación | Disponibilidad general | Última versión menor | Último lanzamiento | Fin del soporte |
---|---|---|---|---|
Versión antigua, ya no se mantiene: 5.1 | 14 de noviembre de 2008 ; Hace 12 años ( 14 de noviembre de 2008) | 5.1.73 | 2013-12-03 | Dic. De 2013 |
Versión antigua, ya no se mantiene: 5.5 | 3 de diciembre de 2010 ; Hace 10 años ( 03/12/2010) | 5.5.62 | 2018-10-22 | Dic 2018 |
Versión antigua, ya no se mantiene: 5,6 | 5 de febrero de 2013 ; Hace 8 años ( 05/02/2013) | 5.6.51 | 2021-01-20 | Febrero de 2021 |
Versión anterior, pero aún se mantiene: 5.7 | 21 de octubre de 2015 ; Hace 5 años ( 21/10/2015) | 5.7.35 | 2021-07-20 | Octubre de 2023 |
Versión estable actual: 8.0 | 19 de abril de 2018 ; hace 3 años ( 2018-04-19) | 8.0.26 | 2021-07-20 | Abr 2026 |
El trabajo en la versión 6 se detuvo después de la adquisición de Sun Microsystems. El producto MySQL Cluster usa la versión 7. Se tomó la decisión de saltar a la versión 8 como el siguiente número de versión principal.
El 15 de junio de 2001, NuSphere demandó a MySQL AB, TcX DataKonsult AB y a sus autores originales Michael ("Monty") Widenius y David Axmark en el Tribunal de Distrito de EE. UU. En Boston por "incumplimiento de contrato, interferencia ilícita en contratos y relaciones con terceros y competencia desleal ".
En 2002, MySQL AB demandó a Progress NuSphere por infracción de derechos de autor y marca registrada en el tribunal de distrito de los Estados Unidos. NuSphere supuestamente violó los derechos de autor de MySQL AB al vincular el código GPL de MySQL con la tabla NuSphere Gemini sin cumplir con la licencia. Después de una audiencia preliminar ante la jueza Patti Saris el 27 de febrero de 2002, las partes entablaron conversaciones de arreglo y finalmente llegaron a un acuerdo. Después de la audiencia, la FSF comentó que "la jueza Saris dejó en claro que considera que la GNU GPL es una licencia vinculante y exigible".
En octubre de 2005, Oracle Corporation adquirió Innobase OY, la empresa finlandesa que desarrolló el motor de almacenamiento InnoDB de terceros que permite que MySQL proporcione funcionalidades tales como transacciones y claves externas. Después de la adquisición, un comunicado de prensa de Oracle mencionó que los contratos que ponen el software de la compañía a disposición de MySQL AB se renovarían (y presumiblemente se renegociaron) en algún momento de 2006. Durante la Conferencia de Usuarios de MySQL en abril de 2006, MySQL AB emitió un comunicado de prensa versión que confirmó que MySQL AB e Innobase OY acordaron una extensión "de varios años" de su acuerdo de licencia.
En febrero de 2006, Oracle Corporation adquirió Sleepycat Software, creadores de Berkeley DB, un motor de base de datos que proporciona la base para otro motor de almacenamiento MySQL. Esto tuvo poco efecto, ya que Berkeley DB no se usaba ampliamente y se eliminó (debido a la falta de uso) en MySQL 5.1.12, una versión anterior a GA de MySQL 5.1 lanzada en octubre de 2006.
En enero de 2008, Sun Microsystems compró MySQL AB por mil millones de dólares.
En abril de 2009, Oracle Corporation celebró un acuerdo para comprar Sun Microsystems, entonces propietarios de los derechos de autor y marca registrada de MySQL. La junta directiva de Sun aprobó por unanimidad el acuerdo. También fue aprobado por los accionistas de Sun y por el gobierno de los Estados Unidos el 20 de agosto de 2009. El 14 de diciembre de 2009, Oracle se comprometió a continuar mejorando MySQL como lo había hecho durante los cuatro años anteriores.
Uno de los fundadores de MySQL AB, Monty Widenius, inició un movimiento contra la adquisición de MySQL AB por parte de Oracle para "Guardar MySQL" de Oracle. La petición de más de 50.000 desarrolladores y usuarios pidió a la Comisión Europea que bloqueara la aprobación de la adquisición. Al mismo tiempo, algunos líderes de opinión sobre software libre (entre ellos Pamela Jones de Groklaw, Jan Wildeboer y Carlo Piana, quienes también actuaron como co-asesores en el procedimiento de regulación de fusiones) abogaron por la aprobación incondicional de la fusión. Como parte de las negociaciones con la Comisión Europea, Oracle se comprometió a que el servidor MySQL continuará hasta al menos 2015 para utilizar la estrategia de licencia dual utilizada durante mucho tiempo por MySQL AB, con versiones propietarias y GPL disponibles. El antimonopolio de la UE lo había estado "presionando para que se deshaga de MySQL como condición para la aprobación de la fusión". Pero, como reveló WikiLeaks, el Departamento de Justicia de Estados Unidos, a pedido de Oracle, presionó a la UE para que aprobara la fusión incondicionalmente. La Comisión Europea finalmente aprobó incondicionalmente la adquisición de MySQL AB por parte de Oracle el 21 de enero de 2010.
En enero de 2010, antes de la adquisición de MySQL AB por parte de Oracle, Monty Widenius inició una bifurcación exclusiva de GPL, MariaDB. MariaDB se basa en la misma base de código que el servidor MySQL 5.5 y tiene como objetivo mantener la compatibilidad con las versiones proporcionadas por Oracle.
MySQL se ofrece en dos ediciones diferentes: el servidor comunitario MySQL de código abierto y el servidor empresarial propietario. MySQL Enterprise Server se diferencia por una serie de extensiones propietarias que se instalan como complementos del servidor, pero por lo demás comparten el sistema de numeración de versiones y se construyen a partir de la misma base de código.
Principales características disponibles en MySQL 5.6:
Los desarrolladores lanzan actualizaciones menores del servidor MySQL aproximadamente cada dos meses. Las fuentes se pueden obtener del sitio web de MySQL o del repositorio GitHub de MySQL, ambos bajo la licencia GPL.
Cuando se utilizan algunos motores de almacenamiento distintos al predeterminado de InnoDB, MySQL no cumple con el estándar SQL completo para algunas de las funciones implementadas, incluidas las referencias de claves externas. Las restricciones de verificación se analizan, pero todos los motores de almacenamiento las ignoran antes de la versión 8.0.15 de MySQL.
Hasta MySQL 5.7, los disparadores están limitados a uno por acción / tiempo, lo que significa que como máximo se puede definir un disparador para que se ejecute después de una operación INSERT y uno antes de INSERT en la misma tabla. No se pueden definir desencadenantes en las vistas.
Las funciones incorporadas de la base de datos MySQL como UNIX_TIMESTAMP () devolverán 0 después de las 03:14:07 UTC del 19 de enero de 2038. Recientemente, se había intentado solucionar el problema que se había asignado a la cola interna.
MySQL se puede construir e instalar manualmente desde el código fuente, pero es más común que se instale desde un paquete binario a menos que se requieran personalizaciones especiales. En la mayoría de las distribuciones de Linux, el sistema de administración de paquetes puede descargar e instalar MySQL con un esfuerzo mínimo, aunque a menudo se requiere una configuración adicional para ajustar la configuración de seguridad y optimización.
Aunque MySQL comenzó como una alternativa de gama baja a las bases de datos propietarias más poderosas, ha evolucionado gradualmente para soportar también necesidades de mayor escala. Todavía se usa más comúnmente en implementaciones de servidor único de pequeña a mediana escala, ya sea como un componente en una aplicación web basada en LAMP o como un servidor de base de datos independiente. Gran parte del atractivo de MySQL se origina en su relativa simplicidad y facilidad de uso, que está habilitada por un ecosistema de herramientas de código abierto como phpMyAdmin. En el rango medio, MySQL se puede escalar implementándolo en hardware más potente, como un servidor multiprocesador con gigabytes de memoria.
Sin embargo, existen límites a la medida en que el rendimiento se puede escalar en un solo servidor ('escalado'), por lo que en escalas más grandes, se requieren implementaciones de MySQL ('escalado horizontal') de múltiples servidores para proporcionar un rendimiento y confiabilidad mejorados. Una configuración típica de gama alta puede incluir una poderosa base de datos maestra que maneja las operaciones de escritura de datos y se replica en múltiples esclavos que manejan todas las operaciones de lectura. El servidor maestro envía continuamente eventos binlog a los esclavos conectados para que, en caso de falla, un esclavo pueda ser promovido para convertirse en el nuevo maestro, minimizando el tiempo de inactividad. Se pueden lograr más mejoras en el rendimiento almacenando en caché los resultados de las consultas de la base de datos en la memoria utilizando memcached, o dividiendo una base de datos en fragmentos más pequeños llamados fragmentos que se pueden distribuir en varios clústeres de servidores distribuidos.
Oracle MySQL ofrece una solución de alta disponibilidad con una combinación de herramientas que incluyen el enrutador MySQL y el shell MySQL. Se basan en la replicación de grupos, herramientas de código abierto.
MariaDB ofrece una oferta similar en términos de productos.
MySQL también se puede ejecutar en plataformas de computación en la nube como Microsoft Azure, Amazon EC2, Oracle Cloud Infrastructure. Algunos modelos de implementación comunes para MySQL en la nube son:
Una interfaz gráfica de usuario (GUI) es un tipo de interfaz que permite a los usuarios interactuar con dispositivos o programas electrónicos a través de iconos gráficos e indicadores visuales como la notación secundaria, a diferencia de las interfaces basadas en texto, las etiquetas de comandos escritas o la navegación de texto.
Hay disponibles aplicaciones de administración gráfica gratuitas y de propiedad de terceros (o "interfaces") que se integran con MySQL y permiten a los usuarios trabajar visualmente con la estructura y los datos de la base de datos.
MySQL Workbench es el entorno integrado para MySQL. Fue desarrollado por MySQL AB y permite a los usuarios administrar gráficamente bases de datos MySQL y diseñar visualmente estructuras de bases de datos.
MySQL Workbench está disponible en dos ediciones, la Community Edition regular, gratuita y de código abierto, que se puede descargar del sitio web de MySQL, y la Standard Edition propietaria, que amplía y mejora el conjunto de funciones de Community Edition.
Una interfaz de línea de comandos es un medio de interactuar con un programa de computadora donde el usuario envía comandos al programa escribiendo líneas sucesivas de texto (líneas de comando). MySQL se envía con muchas herramientas de línea de comandos, desde las cuales la interfaz principal es el cliente mysql.
MySQL Utilities es un conjunto de utilidades diseñadas para realizar tareas comunes de mantenimiento y administración. Incluidas originalmente como parte de MySQL Workbench, las utilidades son una descarga independiente disponible de Oracle.
Percona Toolkit es un juego de herramientas multiplataforma para MySQL, desarrollado en Perl. Percona Toolkit se puede utilizar para demostrar que la replicación funciona correctamente, corregir datos corruptos, automatizar tareas repetitivas y acelerar los servidores. Percona Toolkit se incluye con varias distribuciones de Linux como CentOS y Debian, y también hay paquetes disponibles para Fedora y Ubuntu. Percona Toolkit se desarrolló originalmente como Maatkit, pero a finales de 2011, Maatkit ya no se desarrolla.
El shell MySQL es una herramienta para el uso y la administración interactivos de la base de datos MySQL. Es compatible con los modos JavaScript, Python o SQL y se puede utilizar con fines de administración y acceso.
Muchos lenguajes de programación con API específicas del lenguaje incluyen bibliotecas para acceder a bases de datos MySQL. Estos incluyen MySQL Connector / Net para .NET / CLI Languages y el controlador JDBC para Java.
Además, una interfaz ODBC llamada MySQL Connector / ODBC permite que los lenguajes de programación adicionales que admiten la interfaz ODBC se comuniquen con una base de datos MySQL, como ASP o ColdFusion. El HTSQL - URL basados en el método de consultas también se suministra con un adaptador de MySQL, que permite la interacción directa entre una base de datos MySQL y cualquier cliente web a través de las direcciones URL estructurados. Existen otros conductores para lenguajes como Python o Node.js .
Existe una variedad de bifurcaciones de MySQL, incluidas las siguientes.
Medios relacionados con MySQL en Wikimedia Commons
![]() | Wikilibros tiene más sobre el tema: MySQL |