Requisitos del sistema y materiales necesarios
Sistema operativo: CentOS 7, versión de kernel 3.10.0-327.el7.x86_64.
Paquete fuente: mysql-boost-5.7.13.tar.gz, el cual incluye la biblioteca Boost necesaria.
Instalación de cmake 3.5.2
cmake es una herramienta de compilación independiente del directorio fuente. Descargamos e instalamos la versión requerida.
# wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
# tar xf cmake-3.5.2.tar.gz
# cd cmake-3.5.2
# yum install -y make gcc gcc-c++ ncurses-devel
# ./bootstrap
# gmake
# gmake install
Descarga y preparación del código fuente de MySQL
Obtenemos el archivo comprimido desde el repositorio oficial.
# wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.13.tar.gz
# tar xf mysql-boost-5.7.13.tar.gz
# cd mysql-5.7.13
Configuración de la compilación con cmake
Definimos los directorios de instalación y datos, creamos el usuario y grupo dedicados, y asignamos permisos.
# mkdir -p /opt/mysql_server /data/mysql_storage
# groupadd -r mysql
# useradd -g mysql -r -d /data/mysql_storage mysql
# chown -R mysql:mysql /opt/mysql_server /data/mysql_storage
Ejecutamos cmake con opciones para habilitar motores de almacenamiento y ajustes de red. Se recomienda cambiar el charset a utf8mb4 para soporte completo de Unicode.
# cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql_server \
-DMYSQL_DATADIR=/data/mysql_storage \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/var/run/mysqld.sock \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_BOOST=/ruta/a/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci
Si se reporta un error por falta de bison, instalarlo con yum.
# yum -y install bison
Compilación e instalación de los binarios
Procedemos a compilar el código fuente y luego instalar los archivos en el directorio especificado.
# make
# make install
Configuración del servicio y base de datos inicial
Integramos el servicio en el sistema, inicializamos los archivos de datos y establecemos permisos.
# cp ./support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on
Modificamos el directorio home del usuario mysql y realizamos la inicialización.
# cd /opt/mysql_server
# mkdir secure_files
# chmod 750 secure_files
# chown -R mysql:mysql .
# ./bin/mysqld --initialize --user=mysql
La salida generará una contraseña temporal para root. Se debe anotar esta contraseña para el primer acceso.
Configuramos los certificados SSL y ajustamos los permisos finales.
# ./bin/mysql_ssl_rsa_setup
# chown mysql:mysql secure_files
Inicio del servicio y verificación
Iniciamos MySQL y nos conectamos usando la contraseña temporal.
# service mysqld start
# mysql -u root -p
Tras ingresar la contraseña temporal, se debe cambiar a una contraseña segura utilizando el siguiente comando SQL.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'contraseña_segura';
Verificamos la versión del servidor y la conectividad básica.