Lo primero que haremos será entrar en la carpeta /usr/local/src y descomprimir el archivo tar.gz correspondiente. Con esto se nos creará una carpeta con el mismo nombre (sin extensión) que contendrá los fuentes de la aplicación.
bash# tar xvfzp mysql-4.1.10a.tar.gz
bash# cd mysql-4.1.10a
Creación de usuario y grupo mysql
Es necesario por seguridad crear un usuario y un grupo de nombre mysql con el fin de que sea este usuario bajo el que se ejecute MySQL, y sea también el propietario de las bases de datos.
bash# groupadd mysql
bash# useradd -g mysql mysql
Configuración de los fuentes y compilación
Mediante el programa configure se realizar una configuración automática de los fuentes comprobando que todas las librerías necesarias están instaladas. Es posible utilizar diferentes parámetros para variar el comportamiento por defecto de la instalación. Así, por ejemplo, el parámetro más importante es --prefix, mediante el cual se indica el path en el que se desea instalar la aplicación. Existen multitud más de parámetros que pueden verse con ./configure --help.
La forma más sencilla de configurar los fuentes es indicando únicamente la ubicación donde queremos instalar la aplicación
bash# ./configure --prefix=/usr/local/mysql
En nuestro caso sin embargo, vamos a añadir un conjunto de opciones que indican el compilador a utilizar (gcc) así como que se genere un binario optimizado. Lo siguiente es una única instrucción formada de varias líneas.
bash# 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
--with-named-curses-libs=/lib/libncurses.so.5
Si todo ha ido correctamente, tanto en un caso como en el otro, nos saldrá un mensaje similar al siguiente:
MySQL has a Web site at http://www.mysql.com/ which carries details on the
latest release, upcoming features, and other information to make your
work or play with MySQL more productive. There you can also find
information about mailing lists for MySQL discussion.
Remember to check the platform specific part of the reference manual for
hints about installing MySQL on your platform. Also have a look at the
files in the Docs directory.
Thank you for choosing MySQL!
En caso contrario se nos indicará el problema, que suele ser que no hay disponible alguna librería necesaria, en cuyo caso deberemos instalarla y volver a intentarlo. Podemos mirar el archivo config.log para ver un informe de lo sucedido.
Una vez correctamente configurados los fuentes, es hora de compilarlos.
bash# make
Este proceso puede tardar varios minutos en función del equipo en el que estemos realizando la instalación.
Instalación
Una vez compilada la aplicación nos queda instalarla, lo cual haremos también utilizando el comando make, pero indicándole una tarea diferente.
bash# make install
Tras la instalación hay varias cosas que es necesario configurar antes de poder empezar a trabajar, como crear un archivo de configuración, crear las tablas de permisos (grant tables), configurar los permisos de los programas y la carpeta de datos y, por último, configurar MySQL para que se inicie automáticamente al arrancar la máquina.
Crear el archivo de configuración
En la carpeta support-files hay varios ejemplos que se pueden tomar como base.
bash# cp support-files/my-medium.cnf /etc/my.cnf
bash# chown mysql:mysql /etc/my.cnf
bash# chmod 600 /etc/my.cnf
Le ponemos permisos de lectura y escritura únicamente para el usuario root, de forma que nadie más pueda acceder al archivo.
Conviene echar un vistazo al archivo creado, por si consideramos que tenemos que modificar algún parámetro de la configuración. En nuestro caso vamos a desactivar el log binario que se utiliza para replicación de bases de datos. Para ello buscamos la línea que contiene log-bin y le ponemos un “#” al comienzo.
# Replication Master Server (default)
# binary logging is required for replication
#log-bin
Dentro de la sección mysqld vamos también a introducir una línea comentada que nos permitirá activar el log de consultas si en algún momento necesitamos ver qué consultas se están ejecutando, por ejemplo, si detectamos que el servidor tiene problemas y consideramos que se debe a algún tipo de consultas SQL.
#log = /usr/local/mysql/var/mysql.log
Tablas de permisos
La primera vez que se instala MySQL es necesario crear estas tablas. Para ello disponemos de un programa que permite hacerlo automáticamente.
bash# /usr/local/mysql/bin/mysql_install_db --user=mysql
El valor mysql que se indica en el parámetro --user ha de coincidir con el usuario que hemos creado al comienzo de la instalación.
Permisos
Debemos configurar los permisos de los programas generados así como de la carpeta que contiene las bases de datos. Vamos a poner como propietario de todos los archivos al usuario root, y como grupo mysql, salvo en la carpeta de datos var y su contenido, que le pondremos como usuario propietario mysql.
bash# chown -R root /usr/local/mysql
bash# chown -R mysql /usr/local/mysql/var
bash# chgrp -R mysql /usr/local/mysql
Arranque de MySQL
Vamos a comenzar lo primero lanzando el servidor de MySQL para comprobar que la instalación que hemos realizado ha ido bien.
bash# /usr/local/mysql/bin/mysqld_safe --user=mysql &
Si falla nos indicará algo similar a “mysqld ended”. Podremos ver información al respecto en el archivo “host_name.err” que hay en el directorio de datos.
Podemos probar a entrar en la consola de mysql utilizando el usuario root, el cual inicialmente no tiene password, lo cual convendría por seguridad cambiar.
bash# /usr/local/mysql/bin/mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 4.1.10a
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql>
Una vez llegados a este punto, en el que ya tenemos MySQL instalado y funcionando, podemos probar a configurar MySQL para que se active automáticamente al arrancar la máquina. Para ello podemos copiar el archivo support-files/mysql.server en la ubicación en donde estén los scripts de arranque en la máquina.
bash# cp support-files/mysql.server /etc/init.d/mysqld
bash# chmod +x /etc/init.d/mysqld
En sistemas basados en RedHat puede ser que en vez de en /etc/init.d, tengamos que copiar el archivo en /etc/rc.d/init.d. Podemos probar el script llamándole directamente /etc/init.d/mysqld e indicándole la acción que queremos, start,stop o restart.
Una vez copiado el script de arranque es necesario activarlo, por ejemplo usando chkconfig o creando enlaces simbólicos desde el runlevel que deseemos.
bash# chkconfig --add mysqld
En el caso de distribuciones basadas en debian podemos utilizar:
bash# update-rc.d mysqld defaults
En la web de MySQL hay más información al respecto.
Con esto ya tendríamos MySQL correctamente instalado y configurado, es momento de pasar a instalar Apache.