Tabla de contenidos
- 2.1. Cuestiones generales sobre la instalación
- 2.2. Instalación MySQL estándar con una distribución binaria
- 2.3. Instalar MySQL en Windows
-
- 2.3.1. Requisitos de Windows
- 2.3.2. Elección de un paquete de instalación
- 2.3.3. Instalación de MySQL con un instalador automático
- 2.3.4. Usar el asistente de instalación de MySQL
- 2.3.5. Utilización del asistente de configuración
- 2.3.6. Instalar MySQL partiendo de un archivo Zip Noinstall
- 2.3.7. Descomprimir el fichero de instalación
- 2.3.8. Creación de un fichero de opciones
- 2.3.9. Seleccionar un tipo de servidor MySQL
- 2.3.10. Arrancar el servidor la primera vez
- 2.3.11. Arrancar MySQL desde la raya de comandos de Windows
- 2.3.12. Arrancar MySQL como un servicio de Windows
- 2.3.13. Comprobar la instalación de MySQL Installation
- 2.3.14. Resolución de problemas en la instalación de MySQL bajo Windows
- 2.3.15. Aumentar la versión de MySQL en Windows
- 2.3.16. Comparación entre MySQL en Windows y MySQL en Unix
- 2.4. Instalar MySQL en Linux
- 2.5. Instalar MySQL en Mac OS X
- 2.6. Instalar MySQL sobre NetWare
- 2.7. Instalación de MySQL en otros sistemas similares a Unix
- 2.8. Instalación de MySQL usando una distribución de código fuente
-
- 2.8.1. Panorámica de la instalación de código fuente
- 2.8.2. Opciones típicas de configure
- 2.8.3. Instalar desde el árbol de código fuente de desarrollo
- 2.8.4. Problemas en la compilación de MySQL
- 2.8.5. Notas sobre MIT-pthreads
- 2.8.6. Instalar MySQL desde el código fuente en Windows
- 2.8.7. Compilar los clientes de MySQL en Windows
- 2.9. Puesta en marcha y comprobación después de la instalación
- 2.10. Aumentar la versión de MySQL
- 2.11. Bajar la versión de MySQL
- 2.12. Notas específicas sobre sistemas operativos
- 2.13. Notas sobre la instalación de Perl
En este capítulo se describe cómo obtener e instalar MySQL:
-
Debe determinarse si la plataforma donde se desea hacer la instalación está soportada. Nótese que no todos los sistemas soportados son igualmente adecuados para ejecutar MySQL. En algunas plataformas el funcionamiento será mucho más robusto y eficiente que en otras. Consulte Sección 2.1.1, “Sistemas operativos que MySQL soporta” para más detalles.
-
Debe elegirse la distribución que se instalará. Hay varias versiones de MySQL disponibles, y la mayoría lo están en varios formatos de distribución. Se puede elegir entre distribuciones prearmadas que contienen programas binarios (precompilados) o bien código fuente. En caso de duda, debe elegirse una distribución binaria. También se provee acceso público al código fuente para quienes deseen ver los desarrollos más recientes y colaborar en el testeo de código nuevo. Para establecer qué versión y tipo de distribución debería usarse, consulte Sección 2.1.2, “Escoger la distribución MySQL a instalar”.
-
Descargar la distribución que se desea instalar. Para ver una lista de sitios desde los cuales se puede obtener MySQL, consúltese Sección 2.1.3, “Cómo obtener MySQL”. Se puede verificar la integridad de la distribución como se describe en Sección 2.1.4, “Comprobar la integridad de paquetes con sumas de verificación MD5 o
GnuPG
”. -
Instalar la distribución. Para instalar MySQL desde una dsitribución binaria, empleense las instrucciones en Sección 2.2, “Instalación MySQL estándar con una distribución binaria”. Para instalar MySQL a partir de una distribución de código fuente o desde el directorio de desarrollo actual, utilícense las instrucciones en Sección 2.8, “Instalación de MySQL usando una distribución de código fuente”.
Nota: Si se planea actualizar una versión existente de MySQL a una versión más nueva en lugar de instalarlo por primera vez, consúltese Sección 2.10, “Aumentar la versión de MySQL” para obtener información acerca de procedimientos de actualización y de cuestiones que se deberían de considerar antes de actualizar.
Si se encontrasen problemas durante la instalación, consúltese Sección 2.12, “Notas específicas sobre sistemas operativos” para obtener información sobre la resolución de problemas en plataformas específicas.
-
Realizar cualquier ajuste que sea necesario con posterioridad a la instalación. Luego de instalar MySQL, léase Sección 2.9, “Puesta en marcha y comprobación después de la instalación”. Esta sección contiene información importante acerca de cómo asegurarse de que el servidor de MySQL está funcionando adecuadamente. También describe cómo hacer seguras las cuentas de usuario iniciales de MySQL, que no poseen contraseñas hasta que se les hayan asignado. Esta sección es de aplicación si MySQL se ha instalado utilizando tanto una distribución binaria como una de código fuente.
-
Si se desea ejecutar los scripts para medir el rendimiento de MySQL, debe estar disponible el soporte de Perl para MySQL. Consúltese Sección 2.13, “Notas sobre la instalación de Perl”.
Antes de instalar MySQL, se debería hacer lo siguiente:
-
Determinarse si la plataforma donde se desea hacer la instalación está soportada.
-
Elegirse la distribución que se instalará.
-
Descargar la distribución que se desea instalar y verificar su integridad.
Esta sección contiene la información necesaria para llevar adelante estos pasos. Una vez ejecutados, se puede seguir las instrucciones de secciones posteriores del capítulo, para instalar la distribución elegida.
En esta sección aparecen listados los sistemas operativos en los que es posible instalar MySQL.
Se ha utilizado GNU Autoconfig, de modo que es posible portar MySQL a todos los sistemas modernos que tengan un compilador de C++ y una implementación funcional de subprocesos (threads) POSIX. (El soporte de subprocesos es necesario para el servidor. Para compilar únicamente el código del cliente, no se requiere más que el compilador de C++). Nosotros mismos desarrollamos y utilizamos el software ante todo en Linux (SuSE y Red Hat), FreeBSD, y Sun Solaris (Versiones 8 y 9),
MySQL ha sido compilado correctamente en las siguientes combinaciones de sistemas operativos y paquetes de subprocesos. Nótese que, para varios sistemas operativos, el soporte nativo de subprocesos funciona solamente en las versiones más recientes.
-
AIX 4.x, 5.x con subprocesos nativos. Consulte Sección 2.12.5.3, “Notas sobre IBM-AIX”.
-
Amiga.
-
BSDI 2.x with con el paquete MIT-pthreads. Consulte Sección 2.12.4.5, “Notas sobre BSD/OS Version 2.x”.
-
BSDI 3.0, 3.1 y 4.x con subprocesos nativos. Consulte Sección 2.12.4.5, “Notas sobre BSD/OS Version 2.x”.
-
Digital Unix 4.x con subprocesos nativos. Consulte Sección 2.12.5.5, “Notas Alpha-DEC-UNIX (Tru64)”.
-
FreeBSD 2.x con el paquete MIT-pthreads. Consulte Sección 2.12.4.1, “Notas sobre FreeBSD”.
-
FreeBSD 3.x and 4.x con subprocesos nativos. Consulte Sección 2.12.4.1, “Notas sobre FreeBSD”.
-
FreeBSD 4.x con LinuxThreads. Consulte Sección 2.12.4.1, “Notas sobre FreeBSD”.
-
HP-UX 10.20 con el paquete DCE threads o MIT-pthreads. Consulte Sección 2.12.5.1, “Notas sobre HP-UX Version 10.20”.
-
HP-UX 11.x con subprocesos nativos. Consulte Sección 2.12.5.2, “Notas sobre HP-UX Version 11.x”.
-
Linux 2.0+ con LinuxThreads 0.7.1+ o
glibc
2.0.7+ para varias arquitecturas de CPU. Consulte Sección 2.12.1, “Notas sobre Linux”. -
Mac OS X. Consulte Sección 2.12.2, “Notas sobre Mac OS X”.
-
NetBSD 1.3/1.4 Intel y NetBSD 1.3 Alpha (requiere GNU make). Consulte Sección 2.12.4.2, “Notas sobre NetBSD”.
-
Novell NetWare 6.0. Consulte Sección 2.6, “Instalar MySQL sobre NetWare”.
-
OpenBSD > 2.5 con subprocesos nativos. OpenBSD < 2.5 con el paquete MIT-pthreads. Consulte Sección 2.12.4.3, “Notas sobre OpenBSD 2.5”.
-
OS/2 Warp 3, FixPack 29 y OS/2 Warp 4, FixPack 4. Consulte Sección 2.12.6, “Notas sobre OS/2”.
-
SCO OpenServer 5.0.X con una versión del paquete FSU Pthreads recientemente portada. Consulte Sección 2.12.5.8, “Notas sobre SCO UNIX y OpenServer 5.0.x”.
-
SCO UnixWare 7.1.x. Consulte Sección 2.12.5.9, “Notas sobre SCO UnixWare 7.1.x y OpenUNIX 8.0.0”.
-
SCO Openserver 6.0.x. Consulte Sección 2.12.5.10, “Notas sobre SCO OpenServer 6.0.x”.
-
SGI Irix 6.x con subprocesos nativos. Consulte Sección 2.12.5.7, “Notas sobre SGI Irix”.
-
Solaris 2.5 y posteriores con subprocesos nativos en SPARC y x86. Consulte Sección 2.12.3, “Notas sobre Solaris”.
-
SunOS 4.x con el paquete MIT-pthreads package. Consulte Sección 2.12.3, “Notas sobre Solaris”.
-
Tru64 Unix. Consulte Sección 2.12.5.5, “Notas Alpha-DEC-UNIX (Tru64)”.
-
Windows 9x, Me, NT, 2000, XP, y 2003. Consulte Sección 2.3, “Instalar MySQL en Windows”.
No todas las plataformas son igualmente aptas para ejecutar MySQL. Los siguientes factores determinan si una plataforma está más o menos bien preparada para un servidor MySQL con alto volumen de carga y para misiones crítica:
-
Estabilidad general de la biblioteca de subprocesos. Una plataforma puede tener una excelente reputación en otras situaciones, pero MySQL es estable como lo sea la biblioteca de subprocesos que utiliza la plataforma, aun cuando cualquier otro aspecto sea perfecto.
-
La capacidad del núcleo o kernel del sistema operativo y de la biblioteca de subprocesos para aprovechar sistemas de multiprocesamiento simétrico (SMP). En otras palabras, cuando un proceso crea un subproceso, éste debería poderse ejecutar en una CPU diferente a la del proceso original.
-
La capacidad del núcleo o kernel del sistema operativo y de la biblioteca de subprocesos para ejecutar varios subprocesos que bloquean y liberan mutexes frecuentemente en una pequeña región crítica sin excesivos cambios de contexto. Si la implementación de
pthread_mutex_lock()
es muy proclive a consumir tiempo de CPU, esto afectará en gran manera a MySQL. Si no se previene este problema, añadir más CPUs hará todavía más lento a MySQL. -
El rendimiento y la estabilidad general del sistema de ficheros.
-
Si se emplean grandes tablas, la capacidad del sistema de ficheros para gestionar eficientemente archivos de gran tamaño.
-
El nivel de experiencia que los desarrolladores de MySQL AB posean sobre una determinada plataforma. Si la conocen bien, habilitan optimizaciones específicas y soluciones en tiempo de compilación. Además pueden proporcionar consejos sobre cómo configurar el sistema en forma óptima para MySQL.
-
El volumen de pruebas realizadas por MySQL AB sobre configuraciones similares.
-
La cantidad de usuarios que han ejecutado MySQL con éxito en la misma plataforma y en configuraciones similares. Si este número es alto, las probabilidades de encontrar sorpresas específicas de la plataforma son mucho menores.
En base a estos criterios, las mejores plataformas para ejecutar
MySQL en este momento son x86 con SuSE Linux (kernel versión
2.4 o 2.6), y ReiserFS (o cualquier distribución de Linux
similar) y SPARC con Solaris (2.7-9). FreeBSD aparece en tercer
lugar, pero es de esperar que se integre al lote principal
cuando se mejore la biblioteca de subprocesos. También las
otras plataformas donde MySQL se compila y ejecuta en la
actualidad podrian ser incluidas en la categoria principal, pero
no con el mismo nivel de estabilidad y rendimiento. Esto
requiere un esfuerzo por parte de los desarrolladores de MySQL
en cooperación con los desarrolladores de los sistemas
operativos y de bibliotecas de componentes de las que depende
MySQL. Si Usted está interesado en mejorar alguno de estos
componentes, está en posición de influir en su desarrollo, y
necesita información más detallada acerca de lo que MySQL
requiere para funcionar mejor, envíe un mensaje de correo
electrónico a la lista de correo internals
de MySQL. Consulte Sección 1.6.1.1, “Las listas de correo de MySQL”.
El propósito de la anterior comparación no es afirmar que un sistema es, en términos generales, mejor o peor que otro. Se trata solamente de la elección de un sistema operativo con el objetivo de ejecutar MySQL. Por lo tanto, el resultado de la comparación podría ser diferente si se consideraran otros factores. En algunos casos, la razón de que un sistema operativo sea mejor que otros podría residir simplemente en que los desarrolladores de MySQL han podido dedicar más esfuerzos a la prueba y optimización sobre una plataforma en particular. Lo aquí manifestado son las observaciones de estos desarrolladores a fin de ayudar al usuario a decidir la plataforma sobre la que ejecutar MySQL.
Como parte de los preparativos para instalar MySQL, debe decidirse qué versión se utilizará. El desarrollo de MySQL se divide en entregas (releases) sucesivas, y el usuario puede decidir cuál es la que mejor satisface sus necesidades. Después de haber elegido la versión a instalar, se debe optar por un formato de distribución. Las entregas están disponibles en formato binario o código fuente.
La primera decisión a tomar es si se desea emplear una entrega "en producción" (estable) o una entrega de desarrollo. En el proceso de desarrollo de MySQL coexisten múltiples entregas, cada una con un diferente estado de madurez:
-
MySQL 5.1 es la próxima serie de entregas de desarrollo, y en ella se implementarán las nuevas características. En breve se pondrán a disposición de los usuarios interesados en hacer pruebas integrales las entregas Alfa.
-
MySQL 5.0 es la serie de entregas estables (para producción). Solamente se liberan nuevas entregas para corrección de errores, no se añaden nuevas características que pudieran afectar a la estabilidad.
-
MySQL 4.1 es la anterior serie de entregas estables (para producción). Se liberarán nuevas entregas para solucionar problemas de seguridad o errores críticos. En esta serie no se agregarán nuevas caracteristicas de importancia.
-
MySQL 4.0 y 3.23 son las antiguas series de entregas estables (para producción). Estas versiones están discontinuadas, de modo que solamente se liberarán nuevas entregas para solucionar errores de seguridad extremadamente críticos.
Los desarrolladores de MySQL no son partidarios de la "congelación" total del código de una versión, puesto que anula la posibilidad de introducir soluciones a errores. Cuando se habla de algo “congelado” se quiere expresar que no se harán más que pequeñas modificaciones que no deberían afectar a la forma en que funciona actualmente una entrega en un entorno de producción. Naturalmente, los errores que se corrigen en una serie se propagan a las siguientes si son relevantes.
Si el usuario está comenzando a emplear MySQL por primera vez o intentando su implementación en un sistema para el que no hay una distribución binaria, es recomendable instalar una entrega perteneciente a una serie en producción. Actualmente, MySQL 5.0. Todas las entregas de MySQL, aun aquellas pertenecientes a una serie en desarrollo, se verifican con las pruebas de rendimiento de MySQL y se prueban extensamente antes de liberarse.
Si se está ejecutando una versión más antigua y se desea actualizar, pero se quiere evitar un cambio brusco con el consiguiente riesgo de incompatibilidades, debería actualizarse a la última versión dentro de la misma serie de entregas que se utiliza actualmente (es decir, aquélla donde únicamente la última parte del número de versión es más nueva que la actual). En dicha versión los desarrolladores de MySQL han tratado de corregir solamente errores fatales y realizar cambios pequeños, relativamente “seguros”.
Si se desea emplear características nuevas que no están en las entregas para ambientes de producción, habrá que utilizar una versión perteneciente a una serie de entregas en desarrollo. Hay que tener en cuenta que las entregas de desarrollo no son tan estables como las que están en producción.
Si lo que se desea es emplear el código fuente más actualizado disponible, que contenga todas las correcciones y esté libre de bugs, se debería emplear uno de los repositorios BitKeeper, que no son “entregas” propiamente dichas, pero es el código en el que se basarán las entregas futuras.
El esquema de denominaciones de MySQL emplea para las entregas nombres consistentes en tres números y un sufijo; por ejemplo, mysql-5.0.9-beta. Los números dentro del nombre de la entrega se interpretan como sigue:
-
El primer número (5) es la versión principal y describe el formato de fichero. Todas las entregas de la versión 5 comparten el mismo formato para sus ficheros.
-
El segundo número (0) es el nivel de entrega. En conjunto, la versión principal y el nivel de entrega constituyen el número de la serie.
-
El tercer número (9) es el número de versión dentro de la serie. Se incrementa para cada nueva entrega. Usualmente es deseable poseer la última versión dentro de la serie que se está usando.
Para los cambios menores, el que se incrementa es el último número en la denominación de la versión. Cuando se adicionan características de importancia o aparecen incompatibilidades menores con versiones precedentes, se incrementa el segundo número. Cuando cambia el formato de los ficheros, se incrementa el primer número.
Las denominaciones de las entregas también incluyen un sufijo para indicar el grado de estabilidad. Una entrega progresa a través de un conjunto de sufijos a medida que mejora su estabilidad. Los posibles sufijos son:
-
alpha indica que la entrega contiene características nuevas que no han sido plenamente probadas. Asimismo, en la sección "Novedades" deberían estar documentados los errores conocidos, aunque usualmente no los hay. Consulte Apéndice C, Historial de cambios de MySQL. Por lo general, en cada entrega alpha se implementan nuevos comandos y extensiones, y es la etapa donde puede producirse la mayor cantidad de cambios en el código. Sin embargo, debido a las pruebas realizadas, no deberían existir errores conocidos.
-
beta significa que la entrega está destinada a poseer sus características completas y que se probó todo el código nuevo. No se agregan características de importancia, y no deberían existir errores críticos. Una versión cambia de alpha a beta cuando no se han descubierto errores fatales durante al menos un mes, y no hay planes de agregar características que pudieran comprometer la fiabilidad del código existente.
Todas las APIs, las estructuras visibles externamente y las columnas para comandos SQL no se modificarán en las futuras entregas, sean beta, candidatas, o de producción.
-
rc es una entrega candidata; o sea, una beta que ha estado funcionando un intervalo de tiempo y parece hacerlo bien. Solamente podrían ser necesarias correcciones menores. (Una entrega candidata es formalmente conocida como una entrega gamma.)
-
Si no hay un sufijo, significa que la versión se ha estado utilizando por un tiempo en diferentes sitios sin que se informaran errores críticos reproducibles, más allá de los específicos de una plataforma. Esto es lo que se llama una entrega de producción (estable) o “General Availability” (GA).
MySQL utiliza un esquema de denominaciones ligeramente diferente a muchos otros productos. En general, se considera segura para usar una versión que ha durado un par de semanas sin ser reemplazada por una nueva dentro de la misma serie de entregas.
La totalidad de las entregas de MySQL se someten a pruebas de fiabilidad y rendimiento (estándares dentro de MySQL) para cerciorarse de que son relativamente seguras de utilizar. Puesto que las pruebas estándar son ampliadas cada vez para que incluyan todos los errores anteriormente descubiertos, el conjunto de pruebas se mejora continuamente.
Cada entrega se prueba al menos con:
-
Un conjunto interno de pruebas
El directorio
mysql-test
contiene un amplio conjunto de casos de prueba. En MySQL, prácticamente cada versión binaria del servidor pasa por estas pruebas. Consulte Sección 27.1.2, “El paquete de pruebas MySQL Test” para más información sobre este conjunto de pruebas. -
El conjunto de pruebas de rendimiento de MySQL
Este conjunto ejecuta una serie de consultas comunes. Es también una manera de verificar que las últimas optimizaciones realizadas hacen efectivamente más rápido el código. Consulte Sección 7.1.4, “El paquete de pruebas de rendimiento (benchmarks) de MySQL”.
-
La prueba
crash-me
Esta prueba intenta determinar las características soportadas por la base de datos y cuáles son sus capacidades y limitaciones. Consulte Sección 7.1.4, “El paquete de pruebas de rendimiento (benchmarks) de MySQL”.
Otra prueba consiste en utilizar la versión más reciente del servidor en el entorno de producción de MySQL, en al menos un ordenador. Se dispone de más de 100GB de datos para este fin.
Después de haber decidido qué versión de MySQL instalar, se debe elegir entre una distribución binaria o una de código fuente. Probablemente la elección más frecuente sea la distribución binaria, si existe una para la plataforma en cuestión. Hay distribuciones binarias disponibles en formato nativo para muchas plataformas, como los ficheros RPM para Linux, paquetes de instalación DMG para Mac OS X, y ficheros comprimidos Zip y tar.
Algunas razones a favor de la elección de una distribución binaria:
-
Es más fácil de instalar que una distribución de código fuente.
-
Para satisfacer distintos requerimientos de usuarios, se facilita dos versiones binarias diferentes: una que contiene motores de almacenamiento no transaccionales (más pequeña y rápida) y una configurada con las más importantes opciones, como por ejemplo tablas transaccionales. Ambas versiones se compilan a partir de la misma distribución de código fuente. Todos los clientes MySQL nativos pueden conectarse a ambas versiones indistintamente.
La versión binaria extendida de MySQL está señalada con el sufijo
-max
y está configurada con las mismas opciones que mysqld-max. Consulte Sección 5.1.2, “El servidor extendido de MySQL mysqld-max”.Si se desea utilizar
MySQL-Max
en formato RPM, primero debe instalarse el RPM deMySQL-server
estándar.
Bajo ciertas circunstancias, puede ser mejor instalar MySQL a partir de una distribución de código fuente:
-
Cuando se desea instalar MySQL en una ubicación especial. Las distribuciones binarias estándar están listas para ejecutarse en cualquier sitio, pero podria ser necesaria aún más flexibilidad en la elección de la ubicación de los componentes.
-
Cuando se desea configurar mysqld con algunas características adicionales que no se encuentran incluídas en las distribuciones binarias estándar. La siguiente es una lista de las opciones adicionales más comunes:
-
--with-innodb
(habilitado por defecto en todas las entregas binarias de la serie 5.0 de MySQL) -
--with-berkeley-db
(no está disponible en todas las plataformas) -
--with-libwrap
-
--with-named-z-libs
(en algunas distribuciones binarias ya está incluido) -
--with-debug[=
full
]
-
-
Cuando se desea excluir de mysqld algunas características presentes en las distribuciones binarias estándar. Por ejemplo, estas distribuciones se compilan normalmente con soporte para todos los conjuntos de caracteres. Si se deseara un servidor MySQL más liviano, se lo puede recompilar con soporte solamente para el conjunto de caracteres que se necesita.
-
Cuando se posee un compilador especial (como
pgcc
) o se desea utilizar opciones de compilación optimizadas para un determinado procesador. Las distribuciones binarias se compilan con opciones que deberían funcionar en diversos procesadores de la misma familia. -
Cuando se desea emplear la última versión de código fuente desde un repositorio BitKeeper, para acceder a modificaciones recientes. Por ejemplo, si se detecta un error y se comunica al equipo de desarrollo de MySQL, la corrección se realiza sobre el código fuente, que queda almacenado en el repositorio. La primera entrega con esta corrección será la siguiente.
-
Cuando se desea leer (o modificar) el código en C y C++ que conforma MySQL. Para este fin, se debería poseer una distribución de código fuente, ya que es la documentación más actualizada.
-
Las distribuciones de código fuente contienen más pruebas y ejemplos que las distribuciones binarias.
MySQL evoluciona con rapidez, y sus desarrolladores desean compartir el desarrollo con los usuarios. Se intenta producir una entrega cada vez que se incorpora nuevas características que pueden ser útiles para otros.
También se escucha a los usuarios que solicitan características sencillas de implementar. Se toma nota de lo que los usuarios con licencia desean, y especialmente de lo que solicitan los clientes de soporte, intentando actuar al respecto.
No es necesario descargar una entrega para conocer sus características, puesto que se puede dilucidar si una entrega posee determinada característica en la sección Novedades. Consulte Apéndice C, Historial de cambios de MySQL.
MySQL se rige por la siguiente política de actualizaciones:
-
Las entregas se liberan dentro de cada serie. Para cada entrega, el último número en la versión es uno más que en la entrega anterior dentro de la misma serie.
-
Las entregas de producción (estables) tienden a aparecer 1 o 2 veces por año. Sin embargo, de hallarse pequeños bugs, se libera una entrega con solamente correcciones.
-
Las entregas de corrección para viejas entregas tienden a aparecer cada 4 u 8 semanas.
-
De cada entrega principal Mysql AB realiza distribuciones binarias para algunas plataformas. Otros sujetos pueden realizar distribuciones binarias para otros sistemas, pero probablemente con menos frecuencia.
-
Las correcciones están disponibles tan pronto se identifican errores pequeños o no críticos, pero que igualmente afectan al uso normal de MySQL. Se colocan en el repositorio público BitKeeper, y se incluyen en la entrega siguiente.
-
Si por cualquier motivo se descubre un error fatal en una entrega, la política de MySQL es corregirlo mediante una nueva entrega, tan pronto como sea posible. (¡Y veríamos con agrado que otras compañías hicieran lo mismo!).
Se dedica gran cantidad de tiempo y esfuerzo en producir entregas libres de errores. Que se tenga conocimiento, no se ha liberado una sola versión de MySQL con errores fatales reproducibles conocidos. (Un error “fatal” es uno que provoca la terminación abrupta de MySQL bajo condiciones de uso normales, que produce respuestas incorrectas para consultas normales, o que tiene problemas de seguridad).
Se han documentado todos los problemas, errores y cuestiones que dependen de decisiones de diseño. Consulte Sección A.8, “Problemas conocidos en MySQL”.
La intención de los desarrolladores es corregir todo lo que tenga solución sin afectar a la estabilidad de una versión estable de MySQL. En ciertos casos, esto significa que se puede corregir un error en las versiones en desarrollo, pero no en la versión estable (de producción). De todos modos estos errores se documentan para que los usuarios estén al tanto de ellos.
El proceso de desarrollo comprende las siguientes etapas:
-
Se recolectan informes de errores desde la lista de soporte técnico, desde la base de datos de errores en http://bugs.mysql.com/, y desde las listas de correo externas.
-
Todos los errores hallados en versiones con soporte, se introducen en la base de datos de errores.
-
Cuando se corrige un error, se intenta crear un caso de prueba e incluirlo en el sistema de pruebas, para tener seguridad de que el error no vuelva a ocurrir sin ser detectado. (Cerca del 90% de los errores corregidos tienen un caso de prueba).
-
Se crean casos de prueba para cada nueva característica que se agrega a MySQL.
-
Antes de crear una entrega, se verifica que todos los errores reproducibles informados para esa versión de MySQL (3.23.x, 4.0.x, 4.1.x, 5.0.x, etc.) están solucionados. Si alguno no pudiera corregirse (debido a una decisión de diseño) esto se documenta en el manual. Consulte Sección A.8, “Problemas conocidos en MySQL”.
-
Se hace una compilación para cada plataforma para la que se brinda una distribución binaria (más de 15) y se ejecutan pruebas de fiabilidad y rendimiento en todas ellas.
-
No se publica una distribución binaria para una plataforma en la que fallaron las pruebas de fiabilidad o rendimiento. Si el problema se debe a un error en el código fuente, se resuelve, y para todas las plataformas se vuelve a compilar y probar.
-
El proceso de compilación y prueba dura entre 2 y 3 días. Si durante el proceso se descubre un error fatal (por ejemplo, uno que genere un fichero de volcado del núcleo), se corrige el error y el proceso recomienza.
-
Después de publicar la distribución binaria en http://dev.mysql.com/, se envía un mensaje con la novedad a las listas de correo
mysql
yannounce
. Consulte Sección 1.6.1.1, “Las listas de correo de MySQL”. El mensaje contiene una lista con todos los cambios y problemas conocidos que contiene la entrega. La sección Known Problems (problemas conocidos) solo ha sido necesaria en una pequeña cantidad de entregas. -
Para que los usuarios accedan rápidamente a las nuevas características de MySQL, se produce una entrega nuevo cada 4 a 8 semanas. El código fuente se prepara diariamente y se pone a disposición en http://downloads.mysql.com/snapshots.php.
-
Si, a pesar de los esfuerzos realizados, se toma conocimiento de un error o problema crítico específicos de una plataforma después de que una entrega haya sido liberada, se genera una nueva entrega
'a'
con la corrección para la plataforma afectada. Gracias a la gran base de usuarios, cualquier problema se detecta y resuelve muy rápidamente. -
El trabajo del equipo de desarrollo en la generación de entregas estables es bastante bueno. De las últimas 150 entregas, se han debido rehacer menos de diez. En tres de estos casos, el error se debió a defectos en la biblioteca
glibc
en uno de los ordenadores de desarrollo, que llevó tiempo descubrir.
Uno de los servicios que MySQL AB ofrece es proveer un conjunto de distribuciones binarias compiladas en sistemas propios o amablemente proporcionados por adeptos de MySQL.
A parte de las distribuciones binarias provistas en formatos
específicos de algunas plataformas, se ofrecen distribuciones
binarias para una serie de plataformas en forma de ficheros
comprimidos tar (ficheros
.tar.gz
). Consulte
Sección 2.2, “Instalación MySQL estándar con una distribución binaria”.
Para distribuciones Windows, consulte Sección 2.3, “Instalar MySQL en Windows”.
Estas distribuciones se generan empleando el script
Build-tools/Do-compile
, que compila el
código fuente y crea el fichero binario
tar.gz
empleando
scripts/make_binary_distribution.
Estos binarios están configurados y compilados con los
siguientes compiladores y opciones de compilación. Esta
información también puede obtenerse observando las variables
COMP_ENV_INFO
y
CONFIGURE_LINE
dentro del script
bin/mysqlbug de cada fichero de
distribución binaria tar.
Los siguientes binarios se compilan en los sistemas de desarrollo de MySQL AB:
-
Linux 2.4.xx x86 con gcc 2.95.3:
CFLAGS="-O2 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O2 -mcpu=pentiumpro -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
-
Linux 2.4.x x86 con icc (compilador Intel C++ 8.1 o posterior):
CC=icc CXX=icpc CFLAGS="-O3 -unroll2 -ip -mp -no-gcc -restrict" CXXFLAGS="-O3 -unroll2 -ip -mp -no-gcc -restrict" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-embedded-server --with-innodb
Obsérvese que las versiones 8.1 y posteriores del compilador Intel tienen drivers separados para C 'puro' (
icc
) y c++ (icpc
); si se utiliza icc versión 8.0 o anterior para compilar MySQL, será necesario establecerCXX=icc
. -
Linux 2.4.xx Intel Itanium 2 con ecc (Compilador Intel C++ Itanium 7.0):
CC=ecc CFLAGS="-O2 -tpp2 -ip -nolib_inline" CXX=ecc CXXFLAGS="-O2 -tpp2 -ip -nolib_inline" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
-
Linux 2.4.xx Intel Itanium con ecc (Compilador Intel C++ Itanium 7.0):
CC=ecc CFLAGS=-tpp1 CXX=ecc CXXFLAGS=-tpp1 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile
-
Linux 2.4.xx alpha con
ccc
(Compaq C V6.2-505 / Compaq C++ V6.3-006):CC=ccc CFLAGS="-fast -arch generic" CXX=cxx CXXFLAGS="-fast -arch generic -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-mysqld-ldflags=-non_shared --with-client-ldflags=-non_shared --disable-shared
-
Linux 2.x.xx ppc con gcc 2.95.4:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-embedded-server --with-innodb
-
Linux 2.4.xx s390 con gcc 2.95.3:
CFLAGS="-O2" CXX=gcc CXXFLAGS="-O2 -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static
-
Linux 2.4.xx x86_64 (AMD64) con gcc 3.2.1:
CXX=gcc ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
-
Sun Solaris 8 x86 con gcc 3.2.3:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb
-
Sun Solaris 8 SPARC con gcc 3.2:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared
-
Sun Solaris 8 SPARC 64-bit con gcc 3.2:
CC=gcc CFLAGS="-O3 -m64 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -m64 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --with-named-curses-libs=-lcurses --disable-shared
-
Sun Solaris 9 SPARC con gcc 2.95.3:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-curses-libs=-lcurses --disable-shared
-
Sun Solaris 9 SPARC con
cc-5.0
(Sun Forte 5.0):CC=cc-5.0 CXX=CC ASFLAGS="-xarch=v9" CFLAGS="-Xa -xstrconst -mt -D_FORTEC_ -xarch=v9" CXXFLAGS="-noex -mt -D_FORTEC_ -xarch=v9" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=no --enable-thread-safe-client --disable-shared
-
IBM AIX 4.3.2 ppc con gcc 3.2.3:
CFLAGS="-O2 -mcpu=powerpc -Wa,-many " CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared
-
IBM AIX 4.3.3 ppc con
xlC_r
(IBM Visual Age C/C++ 6.0):CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" CXX=xlC_r CXXFLAGS ="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-innodb
-
IBM AIX 5.1.0 ppc con gcc 3.3:
CFLAGS="-O2 -mcpu=powerpc -Wa,-many" CXX=gcc CXXFLAGS="-O2 -mcpu=powerpc -Wa,-many -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared
-
IBM AIX 5.2.0 ppc con
xlC_r
(IBM Visual Age C/C++ 6.0):CC=xlc_r CFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" CXX=xlC_r CXXFLAGS="-ma -O2 -qstrict -qoptimize=2 -qmaxmem=8192" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --disable-shared --with-embedded-server --with-innodb
-
HP-UX 10.20 pa-risc1.1 con gcc 3.1:
CFLAGS="-DHPUX -I/opt/dce/include -O3 -fPIC" CXX=gcc CXXFLAGS="-DHPUX -I/opt/dce /include -felide-constructors -fno-exceptions -fno-rtti -O3 -fPIC" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-pthread --with-named-thread-libs=-ldce --with-lib-ccflags=-fPIC --disable-shared
-
HP-UX 11.00 pa-risc con
aCC
(HP ANSI C++ B3910B A.03.50):CC=cc CXX=aCC CFLAGS=+DAportable CXXFLAGS=+DAportable ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-embedded-server --with-innodb
-
HP-UX 11.11 pa-risc2.0 64bit con
aCC
(HP ANSI C++ B3910B A.03.33):CC=cc CXX=aCC CFLAGS=+DD64 CXXFLAGS=+DD64 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
-
HP-UX 11.11 pa-risc2.0 32bit con
aCC
(HP ANSI C++ B3910B A.03.33):CC=cc CXX=aCC CFLAGS="+DAportable" CXXFLAGS="+DAportable" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb
-
HP-UX 11.22 ia64 64bit con
aCC
(HP aC++/ANSI C B3910B A.05.50):CC=cc CXX=aCC CFLAGS="+DD64 +DSitanium2" CXXFLAGS="+DD64 +DSitanium2" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-embedded-server --with-innodb
-
Apple Mac OS X 10.2 powerpc con gcc 3.1:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
-
FreeBSD 4.7 i386 con gcc 2.95.4:
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared
-
FreeBSD 4.7 i386 empleando LinuxThreads con gcc 2.95.4:
CFLAGS="-DHAVE_BROKEN_REALPATH -D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads" CXXFLAGS="-DHAVE_BROKEN_REALPATH -D__USE_UNIX98 -D_REENTRANT -D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads" ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-thread-libs="-DHAVE_GLIBC2_STYLE_GETHOSTBYNAME_R -D_THREAD_SAFE -I /usr/local/include/pthread/linuxthreads -L/usr/local/lib -llthread -llgcc_r" --disable-shared --with-embedded-server --with-innodb
-
QNX Neutrino 6.2.1 i386 con gcc 2.95.3qnx-nto 20010315:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
Las siguientes distribuciones binarias están compiladas sobre sistemas de terceros, facilitados por otros usuarios a MySQL AB. Se facilitan solamente por cortesía, ya que MySQL AB no tiene control total sobre estos sistemas, por lo que sólo puede proporcionar un soporte limitado sobre las distribuciones compiladas en ellos.
-
SCO Unix 3.2v5.0.7 i386 con gcc 2.95.3:
CFLAGS="-O3 -mpentium" LDFLAGS=-static CXX=gcc CXXFLAGS="-O3 -mpentium -felide-constructors" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared
-
SCO UnixWare 7.1.4 i386 con CC 3.2:
CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared --with-readline
-
SCO OpenServer 6.0.0 i386 con CC 3.2:
CC=cc CFLAGS="-O" CXX=CC ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-z-libs=no --enable-thread-safe-client --disable-shared --with-readline
-
Compaq Tru64 OSF/1 V5.1 732 alpha con
cc/cxx
(Compaq C V6.3-029i / DIGITAL C++ V6.1-027):CC="cc -pthread" CFLAGS="-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all" CXX="cxx -pthread" CXXFLAGS="-O4 -ansi_alias -fast -inline speed -speculate all -noexceptions -nortti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --with-named-thread-libs="-lpthread -lmach -lexc -lc" --disable-shared --with-mysqld-ldflags=-all-static
-
SGI Irix 6.5 IP32 con gcc 3.0.1:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared
-
FreeBSD/sparc64 5.0 con gcc 3.2.1:
CFLAGS=-DHAVE_BROKEN_REALPATH ./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --libexecdir=/usr/local/mysql/bin --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --disable-shared --with-innodb
Las siguientes opciones de compilación han sido empleadas en distribuciones binarias en el pasado. Estas distribuciones ya no reciben actualizaciones, pero las opciones de compilación se listan para referencia.
-
Linux 2.2.xx SPARC con egcs 1.1.2:
CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared
-
Linux 2.2.x con x686 con gcc 2.95.2:
CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --with-extra-charsets=complex
-
SunOS 4.1.4 2 sun4c con gcc 2.7.2.1:
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors" ./configure --prefix=/usr/local/mysql --disable-shared --with-extra-charsets=complex --enable-assembler
-
SunOS 5.5.1 (y posteriores) sun4u con egcs 1.0.3a o 2.90.27 o
gcc 2.95.2 y posteriores:
CC=gcc CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex --enable-assembler
-
SunOS 5.6 i86pc con gcc 2.8.1:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-low-memory --with-extra-charsets=complex
-
BSDI BSD/OS 3.1 i386 con gcc 2.7.2.1:
CC=gcc CXX=gcc CXXFLAGS=-O ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
-
BSDI BSD/OS 2.1 i386 con gcc 2.7.2:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
-
AIX 4.2 con gcc 2.7.2.2:
CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex
Si alguien tiene opciones más efectivas para cualquiera de
las configuraciones listadas, puede enviarlas por correo
electrónico a la lista de correo MySQL
internals
. Consulte
Sección 1.6.1.1, “Las listas de correo de MySQL”.
Las distribuciones RPM para entregas de MySQL 5.0 disponibles en el sitio web de MySQL están generadas por MySQL AB.
Si desea compilar una versión de depuración de MySQL,
debería agregar --with-debug
o
--with-debug=full
a los comandos
configure anteriores, y quitar cualquier
opción -fomit-frame-pointer
.
Consulte la página de descargas de MySQL (http://dev.mysql.com/downloads/) para obtener información acerca de la versión más actualizada e instrucciones de descarga. Para obtener una lista actualizada de los sitios de replicación que también ofrecen descargas de MySQL, consulte http://dev.mysql.com/downloads/mirrors.html. Encontrará información acerca de cómo constituir un sitio de replicación y de cómo informar sobre un sitio de replicación que esté funcionando mal o esté desactualizado.
El principal sitio de replicación se encuentra en http://mirrors.sunsite.dk/mysql/.
Después de descargar la distribución de MySQL que se adecúe a las necesidades del caso y antes de proceder a su instalación, se debería verificar su integridad. MySQL AB ofrece tres posibles formas de hacerlo:
-
Sumas de verificación (checksums) MD5
-
Firmas criptográficas empleando
GnuPG
, el GNU Privacy Guard. -
Para paquetes RPM, el mecanismo de verificación de integridad que incorporan estos paquetes.
Las siguientes secciones describen cómo emplear estos métodos.
Si se advierte que la suma de verificación MD5 o la firma GPG
no coinciden, en primer lugar debe intentarse con una nueva
descarga del paquete, quizá desde otro sitio de replicación.
Si la verificación de la integridad del paquete fracasa
repetidas veces, se debe notificar el incidente a MySQL AB,
informando del nombre completo del paquete y del sitio de donde
se descargó, a las direcciones
<[email protected]>
o
<[email protected]>
. No debe utilizarse el sistema de
informe de errores para comunicar problemas de descarga.
Después de haber descargado un paquete MySQL, se debería
estar seguro de que su suma de verificación (checksum) MD5
concuerda con la provista en la página de descarga. Cada
paquete tiene una suma de verificación individual, que se
puede verificar mediante el siguiente comando, donde
package_name
es el nombre del paquete
descargado:
shell> md5sum package_name
Ejemplo:
shell> md5sum mysql-standard-5.0.9-beta-linux-i686.tar.gz aaab65abbec64d5e907dcd41b8699945 mysql-standard-5.0.9-beta-linux-i686.tar.gz
Se debería verificar que la suma de verificación resultante (la cadena de dígitos hexadecimales) concuerda con la que se muestra en la página de descargas inmediatamente debajo del paquete correspondiente.
Nota: lo que se debe
comprobar es la suma de verificación del
fichero comprimido (por
ejemplo, el fichero .zip
o
.tar.gz
) y no de los ficheros contenidos
dentro del comprimido.
Hay que notar que no todos los sistemas operativos soportan el comando md5sum. En algunos, se llama simplemente md5 y otros, directamente no lo poseen. En Linux forma parte del paquete GNU Text Utilities, que está disponible para una gran variedad de plataformas. El código fuente puede bajarse desde http://www.gnu.org/software/textutils/. Si OpenSSL está instalado, también puede emplearse el comando openssl md5 package_name. Una versión para DOS/Windows del comando md5 se halla disponible en http://www.fourmilab.ch/md5/.
Otro método para verificar la integridad y autenticidad de un paquete es utilizar firmas criptográficas. Esta manera es más fiable que las sumas de verificación MD5, pero requiere más trabajo.
MySQL AB firma los paquetes de MySQL 5.0 con GnuPG (GNU Privacy Guard). GnuPG es una alternativa de código abierto frente a la conocida Pretty Good Privacy (PGP) de Phil Zimmermann. Consulte http://www.gnupg.org/ para más información acerca de GnuPG y de cómo obtenerlo e instalarlo en su sistema. La mayoría de las distribuciones Linux incluyen GnuPG instalado por defecto. Para mayor información acerca de GnuPG consulte http://www.openpgp.org/.
A fin de verificar la firma de un paquete específico, antes
se debe obtener una copia de la clave pública para GPG de
MySQL AB. Se puede descargar de
http://www.keyserver.net/. La clave está
identificada como [email protected]
.
Alternativamente, puede cortarse y copiarse la clave
directamente del siguiente texto:
Key ID: pub 1024D/5072E1F5 2003-02-03 MySQL Package signing key (www.mysql.com) <[email protected]> Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5 Public Key (ASCII-armored): -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3 RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3 BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE 7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p /1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92 6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ== =YJkx -----END PGP PUBLIC KEY BLOCK-----
Para incorporar esta clave dentro del GPG en uso, se emplea el
comando gpg --import. Por ejemplo, si la
clave estuviese guardada en un fichero llamado
mysql_pubkey.asc
, el comando de
importación tomaría esta forma:
shell> gpg --import mysql_pubkey.asc
Debe consultarse la documentación de GPG para obtener más información sobre el manejo de claves públicas.
Después de haber descargado e importado la clave pública,
debe descargarse el paquete MySQL deseado y la correspondiente
firma, que también se encuentra en la página de descargas.
El fichero de firma tiene el mismo nombre que el fichero de
distribución, con una extensión .asc
.
Por ejemplo:
Fichero de distribución |
mysql-standard-5.0.9-beta-linux-i686.tar.gz
|
Fichero de firma |
mysql-standard-5.0.9-beta-linux-i686.tar.gz.asc
|
Se debe verificar que ambos ficheros se encuentran en el mismo directorio y entonces ejecutar el siguiente comando para verificar la firma del fichero de distribución:
shell> gpg --verify package_name.asc
Ejemplo:
shell> gpg --verify mysql-standard-5.0.9-beta-linux-i686.tar.gz.asc gpg: Signature made Tue 12 Jul 2005 23:35:41 EST using DSA key ID 5072E1F5 gpg: Good signature from "MySQL Package signing key (www.mysql.com) <[email protected]>"
El mensaje Good signature
indica que todo
resultó correctamente. Puede ignorarse cualquier mensaje del
tipo insecure memory
que se obtenga.
No existe una firma por separado para paquetes RPM. Estos paquetes tienen incorporadas la firma GPG y la suma de verificación MD5. Para verificar un paquete RPM se utiliza el siguiente comando:
shell> rpm --checksig package_name.rpm
Ejemplo:
shell> rpm --checksig MySQL-server-5.0.9-0.i386.rpm MySQL-server-5.0.9-0.i386.rpm: md5 gpg OK
Nota: si está utilizando RPM
4.1 y emite mensajes de error del tipo (GPG) NOT OK
(MISSING KEYS: GPG#5072e1f5)
, aun cuando se haya
incorporado la clave pública dentro de las claves reconocidas
por el GPG (keyring), se necesitará importar primero la clave
pública dentro de las claves reconocidas (keyring) del RPM.
RPM 4.1 ya no utiliza las claves reconocidas (keyring)
personales (o GPG en sí mismo). En lugar de ello, mantiene su
propio repositorio de claves (keyring) ya que constituye una
aplicación a nivel de sistema, en tanto que el repositorio
público de claves (keyring) de GPG es un fichero específico
del usuario. Para importar la clave pública de MySQL dentro
del repositorio de claves (keyring) del RPM, primero debe
obtenerse la clave tal como se describe en la sección
anterior. A continuación debe utilizarse rpm
--import para importar la clave. Por ejemplo, si la
clave pública se encuentra en un fichero llamado
mysql_pubkey.asc
, se importa utilizando
el siguiente comando:
shell> rpm --import mysql_pubkey.asc
Para obtener la clave pública de MySQL, consulte:
Sección 2.1.4.2, “Verificación de firmas utilizando GnuPG
”.
Esta sección describe la conformación por defecto de los directorios creados por el instalador binario y por las distribuciones de código fuente provistas por MySQL AB. Si se instala una distribución obtenida de otro proveedor, esta conformación podría variar.
En MySQL 5.0 para Windows, el directorio de instalación por
defecto es C:\Program Files\MySQL\MySQL Server
5.0
. (Algunos usuarios de Windows prefieren realizar
la instalación en el antiguo directorio por defecto,
C:\mysql
. De todos modos, la conformación
de directorios permanece sin cambios). El directorio de
instalación contiene los siguientes subdirectorios:
Directorio | Contenido |
bin
|
Programas cliente y el servidor mysqld |
data
|
Ficheros de registro (logs), bases de datos |
Docs
|
Documentación |
examples
|
Programas y scripts de ejemplo |
include
|
Ficheros de inclusión |
lib
|
Bibliotecas |
scripts
|
Scripts de utilidades. |
share
|
Ficheros con mensajes de error |
Las instalaciones que se crean a partir de distribuciones RPM para Linux generadas por MySQL AB generan archivos bajo los siguientes directorios deL sistema:
Directorio | Contenido |
/usr/bin
|
Programas cliente y scripts |
/usr/sbin
|
El servidor mysqld |
/var/lib/mysql
|
Ficheros de registro (logs), bases de datos |
/usr/share/doc/packages
|
Documentación |
/usr/include/mysql
|
Ficheros de inclusión |
/usr/lib/mysql
|
Bibliotecas |
/usr/share/mysql
|
Ficheros con mensajes de error y conjuntos de caracteres |
/usr/share/sql-bench
|
Pruebas de rendimiento |
En Unix, un fichero binario de distribución
tar se instala descomprimiéndolo en la
ubicación que se escoja para la instalación (generalmente
/usr/local/mysql
) y crea los siguientes
directorios en dicha ubicación:
Directorio | Contenido |
bin
|
Programas cliente y el servidor mysqld |
data
|
Ficheros de registro (logs), bases de datos. |
docs
|
Documentación, registro de modificaciones. |
include
|
Ficheros de inclusión |
lib
|
Bibliotecas |
scripts
|
mysql_install_db |
share/mysql
|
Ficheros con mensajes de error |
sql-bench
|
Pruebas de rendimiento |
Una distribución de código fuente se instala después de
haberla configurado y compilado. Por defecto, la etapa de
instalación crea ficheros bajo /usr/local
,
en los siguientes subdirectorios:
Directorio | Contenido |
bin
|
Programas cliente y scripts |
include/mysql
|
Ficheros de inclusión |
info
|
Documentación en formato "Info" |
lib/mysql
|
Bibliotecas |
libexec
|
El servidor mysqld |
share/mysql
|
Ficheros con mensajes de error |
sql-bench
|
Pruebas de rendimiento y crash-me |
var
|
Bases de datos y ficheros de registro (logs) |
Dentro de su directorio de instalación, la conformación de una instalación de código fuente difiere de una binaria en los siguientes aspectos:
-
El servidor mysqld se instala en el directorio
libexec
en lugar de en el directoriobin
. -
El directorio para los datos es
var
en lugar dedata
. -
mysql_install_db se instala en el directorio
bin
en lugar descripts
. -
Los directorios de ficheros de inclusión y bibliotecas son
include/mysql
ylib/mysql
en lugar deinclude
ylib
.
Se puede crear una instalación binaria propia a partir de una
distribución de código fuente compilada si se ejecuta el
script scripts/make_binary_distribution
desde el directorio principal de la distribución de código
fuente.