Para ejecutar MySQL se recomienda FreeBSD 4.x o posterior,
porque el paquete de subprocesos está mucho más integrado.
Para lograr un sistema seguro y estable, se deberían emplear
solamente kernels de FreeBSD marcados con
-RELEASE
.
La forma más fácil (y más empleada) de instalar MySQL es
utilizar los ports (herramientas para crear, actualizar, y
quitar paquetes de aplicaciones) de
mysql-server y
mysql-client
disponibles en
http://www.freebsd.org/. Utilizar estos ports
conlleva los siguiente benficios:
Un servidor MySQL funcional, con todas las optimizaciones conocidas para la versión de FreeBSD donde se instala.
Configuración y compilación automáticas.
Scripts de inicio instalados en
/usr/local/etc/rc.d
.
Es posible emplear pkg_info -L
para ver
los ficheros que hay instalados.
Es posible emplear pkg_delete
para
quitar MySQL del ordenador.
Se recomienda utilizar MIT-pthreads en FreeBSD 2.x, y los subprocesos (threads) nativos en la Versión 3 en adelante. En algunas versiones 2.2.x es posible utilizar subprocesos nativos, pero pueden aparecer problemas al finalizar mysqld.
Desafortunadamente, ciertas llamadas a funciones en FreeBSD no
son todavía totalmente aptas para subprocesos. Sobre todo,
esto incluye a la función gethostbyname()
,
la cual es utilizada por MySQL para convertir nombres de host
en direcciones IP. Bajo ciertas circunstancias, el proceso
mysqld de repente absorbe el 100% de la
capacidad de la CPU y deja de responder. Si ocurre este
problema, inténtese iniciar MySQL usando la opción
--skip-name-resolve
.
Alternativamente puede enlazarse MySQL en FreeBSD 4.x empleando la biblioteca LinuxThreads, la cual evita algunos problemas que tiene la implementación de subprocesos nativa de FreeBSD. Puede encontrarse una muy buena comparación entre LinuxThreads y la implementación nativa en el artículo de Jeremy Zawodny FreeBSD or Linux for your MySQL Server? (FreeBSD o Linux para su Servidor MySQL?) en http://jeremy.zawodny.com/blog/archives/000697.html.
Los problemas conocidos al utilizar LinuxThreads en FreeBSD son:
Los valores de tiempos de conexión
(wait_timeout
,
interactive_timeout
y
net_read_timeout
) no se respetan. El
síntoma es que las conexiones persistentes se congelan
por un tiempo muy largo, sin cerrarse, y matar ('kill') el
subproceso no tendrá efecto hasta que éste pase al
siguiente comando.
Esto probablemente sea un indicio de un problema en el manejo de señales en la biblioteca de procesos, donde la señal no interrumpe una lectura pendiente. Se supone que esto se resolvió en FreeBSD 5.0
El proceso de compilación de MySQL necesita GNU make (gmake) para llevarse a cabo. Si no está disponible GNU make, habrá que instalarlo antes de compilar MySQL.
La forma recomendada de compilar e instalar MySQL en FreeBSD con gcc (2.95.2 y superior) es:
CC=gcc CFLAGS="-O2 -fno-strength-reduce" \ CXX=gcc CXXFLAGS="-O2 -fno-rtti -fno-exceptions \ -felide-constructors -fno-strength-reduce" \ ./configure --prefix=/usr/local/mysql --enable-assembler gmake gmake install cd /usr/local/mysql bin/mysql_install_db --user=mysql bin/mysqld_safe &
Si se tiene conocimiento de que configure utiliza MIT-pthreads, se debería leer las notas para MIT-pthreads. Consulte Sección 2.8.5, “Notas sobre MIT-pthreads”.
Si se obtiene un error de make install
donde anuncia que no se puede hallar el fichero
/usr/include/pthreads
, es porque
configure no detectó que se necesitan
MIT-pthreads. Para solucionar este problema, debe eliminarse
config.cache
, y luego ejecutar nuevamente
configure con la opción
--with-mit-threads
.
Se debe estar seguro de que la configuración de resolución
de nombres es la correcta. De otras maneras, se pueden
experimentar demoras o fallas al conectarse a
mysqld. También hay que verificar que sea
correcta la entrada para localhost
en el
fichero /etc/hosts
. El fichero debería
comenzar con una línea similar a esta:
127.0.0.1 localhost localhost.your.domain
Se sabe que FreeBSD tiene en forma predeterminada un límite
de manejadores de ficheros muy bajo. Consulte
Sección A.2.17, “No se encontró el fichero”. Hay que iniciar el
servidor utilizando la opción
--open-files-limit
para
mysqld_safe, o elevar en el fichero
/etc/login.conf
el límite para el
usuario mysqld y recompilarlo con
cap_mkdb /etc/login.conf
. También hay que
asegurarse de establecer la clase apropiada de usuario en el
fichero de contraseñas si no se está empleando el
predeterminado (utilizar chpass
mysqld-user-name
). Consulte
Sección 5.1.3, “El script de arranque del servidor mysqld_safe”.
Si se dispone de mucha memoria,se podría considerar la
recompilación del kernel para permitirle a MySQL utilizar
más de 512Mb de RAM. Para más información, ver la
opción MAXDSIZ
en el fichero de
configuración LINT.
Si se tienen problemas con la fecha actual en MySQL, podría
ser de ayuda establecer al valor de la variable
TZ
. Consulte
Apéndice E, Variables de entorno.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.