systemadmin.es > DBA > Instalación de un servidor LAMP II (MySQL 5.1)

Instalación de un servidor LAMP II (MySQL 5.1)

Anteriormente vimos como instalar desde una CentOS 5 debase como configurar los servicios mínimos con daemontools. Hoy vamos a seguir con la instalación desatendida desde código fuente de un MySQL con daemontools.

Mediante este script se va a descargar la última versión disponible de MySQL 5.1 y lo va a instalar usando daemontools.

mkdir -p /usr/local/src
cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.42.tar.gz/from/http://mysql.rediris.es
tar xzf mysql-5.1.*.tar.gz
cd mysql-5.1.*
./configure --prefix=/usr/local/mysql51 --exec-prefix=/usr/local/mysql51 --with-plugins=innobase,partition --enable-assembler --with-mysqld-ldflags=-all-static --with-big-tables --with-pthread
make && make install
cp support-files/my-medium.cnf /etc/my.cnf
ln -s /usr/local/mysql51 /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
mkdir /var/mysql -p
chown mysql. /var/mysql/
mkdir /var/log/mysql -p
chown mysql. /var/log/mysql/
sed -i 's/^#skip-networking/skip-name-resolve/' /etc/my.cnf
sed -i 's/^log-bin/#log-bin/' /etc/my.cnf
sed -i 's/^binlog_format/#binlog_format/' /etc/my.cnf
sed -i 's/skip-federated//' /etc/my.cnf
sed -i 's/\(#innodb_lock_wait_timeout.*\)/\1\ninnodb_file_per_table\ninnodb_flush_method=O_DIRECT\n\n#slow queries\nlong_query_time=1\nslow_query_log=1\n/' /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/var/mysql
ln -s /usr/local/mysql51/ /usr/local/mysql
ln -s /usr/local/mysql/lib /usr/local/mysql/lib64
sed -i 's#unset pathmunge#pathmunge /usr/local/mysql/bin\nunset pathmunge#' /etc/profile
echo "alias mysql='mysql -p\$(cat /var/mysql/.mysql.root.pass)'" >> /etc/profile
. /etc/profile
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf.d/mysql.conf
ldconfig
pwgen 20 > /var/mysql/.mysql.root.pass
chmod 600 /var/mysql/.mysql.root.pass
mkdir -p /usr/local/supervise/mysql/
cat > /usr/local/supervise/mysql/run <<EOF
#!/bin/bash
exec /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/var/mysql --user=mysql --pid-file=/var/mysql/mysqld.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock --log-output=FILE --log-error=/var/log/mysql/mysqld.log --slow_query_log_file=/var/log/mysql/mysqld-slow.log
EOF
chmod +x /usr/local/supervise/mysql/run
ln -s /usr/local/supervise/mysql/ /service/
sleep 5
/usr/local/mysql51/bin/mysqladmin -u root password $(cat /var/mysql/.mysql.root.pass)
/usr/local/mysql51/bin/mysqladmin -u root -h 127.0.0.1 password $(cat /var/mysql/.mysql.root.pass)

Como se puede apreciar, la contraseña de MySQL se va a autogenerar y almacenar en el fichero /var/mysql/.mysql.root.pass con permisos de solo lectura para root. Una vez finalizada la instalación seria recomendable almacenar dicha contraseña en algún gestor de contraseñas, memorizarla o bien cambiarla por otra.

6 comments to “Instalación de un servidor LAMP II (MySQL 5.1)”

  1. Hola Jordi,
    gracias por colgar estos recursos.
    Yo tan sólo modificaría la línea del wget de MySQL ya que estos ha modificado su web y no funciona.

    Indicando la url de rediris directamente: http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.42.tar.gz/from/http://mysql.rediris.es/ podría ser una solución.

    Gracias por los posts!!

  2. Ya lo he actualizado, es una lastima que hayan cambiado la web. Tendré que buscarme otra manera de obtener la última versión disponible

    Muchas gracias por tu comentario!

  3. Duda, que version de centos ocupaste? yo he bajado e instalado la 5.5 es necesario alguna modificacion para instalar mysql? que version de libreria necesitaria?

    Saludos.

  4. Hola, soy algo nuevo en esto de instalar servidores en linux por lo que tengo una duda, he seguido paso a paso la instalacion de centos 5.4 y baje la version de mysql 5.1.48, hasta el ./configure con todas las opciones voy bien, pero al hacer el make me sale esto al final de la execucion:

    make[2]: se sale del directorio `/usr/local/src/mysql-5.1.48/server-tools/instance-manager’
    make[1]: se sale del directorio `/usr/local/src/mysql-5.1.48/server-tools’
    Making all in win
    make[1]: se ingresa al directorio `/usr/local/src/mysql-5.1.48/win’
    make[1]: No se hace nada para `all’.
    make[1]: se sale del directorio `/usr/local/src/mysql-5.1.48/win’

    No se si esto es una advertencia o un error?
    Serias muy amable de explicarme porfavor.

    Muy bueno el blog y los articulos.

    Saludos.

  5. Hola Gerardo,
    No te preocupes por ese mensaje, simplemente indica que ha cambiado de directorio el make

    No es ni una advertencia ni un error, es solo informativo.

    saludos,
    Jordi

  6. Hola,

    gracias por el post. Muy interesante.

    Si uno se interesa en seguir via “copy-paste” el artículo e instalar la 5.1 se puede usar cambiando sólo la siguiente línea :

    wget ftp://mysql.mirrors.ovh.net/ftp.mysql.com/Downloads/MySQL-5.1/mysql-5.1.56.tar.gz

    Saludos

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>