Guía de instalación de MySQL
Esta guía explica cómo instalar el motor de bases de datos MySQL en diferentes sistemas operativos. MySQL es un motor de bases de datos relacional open source, actualmente desarrollado y distribuido por Oracle Corporation.
Instalación de MySQL en macOS con Homebrew
En sistemas macOS con Homebrew instalado, podemos utilizar el comando brew install
:
$ brew install mysql
El comando brew services
nos permitirá iniciar el motor de bases de datos:
$ brew services start mysql
MySQL está configurado por defecto para aceptar conexiones desde localhost
, por lo que no es necesario dar una contraseña para iniciar sesión:
$ mysql -u root
mysql>
Instalación de MySQL en Debian o Ubuntu
Para realizar la instalación de MySQL en Debian o Ubuntu, descargamos el repositorio APT oficial:
$ wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
Y lo instalamos en el sistema utilizando el comando apt install
:
$ sudo apt install ./mysql-apt-config_0.8.9-1_all.deb
Nos aparecerá un dialogo con diferentes opciones para configurar los paquetes disponibles en el repositorio APT. Por el momento dejaremos las opciones por defecto:
Enseguida ejecutamos el comando apt-get update
para actualizar la lista de repositorios:
$ sudo apt-get update
Para luego instalar MySQL, utilizando el comando apt-get
:
$ sudo apt-get install mysql-community-server
El instalador nos pedirá una contraseña para el usuario root
:
Ahora iniciamos el motor utilizando el comando service
:
$ sudo service mysql start
Para iniciar sesión, debemos hacerlo usando el usuario root
y la contraseña que configuramos durante la instalación:
$ mysql -u root -p
Enter password:
mysql>
Instalación de MySQL en Fedora
Para realizar la instalación de MySQL en Fedora, descargamos el repositorio YUM oficial:
$ wget https://dev.mysql.com/get/mysql57-community-release-fc27-10.noarch.rpm
Y lo instalamos en el sistema utilizando el comando rpm
:
$ sudo rpm -Uvh ./mysql57-community-release-fc27-10.noarch.rpm
Enseguida ejecutamos el comando dnf upgrade
para actualizar la lista de repositorios e instalar actualizaciones disponibles:
$ sudo dnf upgrade
Luego instalamos el paquete MySQL utilizando el comando dnf install
:
$ sudo dnf install mysql-community-server
Ahora iniciamos el motor utilizando service
:
$ sudo service mysqld start
Cambiamos la contraseña del usuario root
utilizando la contraseña temporal creada durante el proceso de instalación y guardada en el archivo /var/log/mysqld.log
:
$ sudo grep 'temporary password' /var/log/mysqld.log
2018-03-08T20:52:33.093578Z 1 [Note] A temporary password is generated for root@localhost: hMGKK4Rrj,h!
$ mysqladmin -u root -p password 'New-password-7'
Enter password:
La contraseña debe tener al menos 1 carácter numérico, 1 carácter en minúscula, 1 carácter en mayúscula y 1 carácter especial no-alfanumérico.
Para iniciar sesión, debemos hacerlo usando el usuario root
y la contraseña que acabamos de configurar:
$ mysql -u root -p
Enter password:
mysql>
Instalación de MySQL en CentOS
Debido a que CentOS viene con MariaDB pre-instalado, primero debemos remover el directorio de datos /var/lib/mysql
para poder instalar MySQL. La forma más segura de hacerlo es cambiándole el nombre a dicho directorio:
$ sudo mv /var/lib/mysql /var/lib/mysql.bak
De esta forma no perderemos el directorio de datos de MariaDB si llegamos a necesitarlo en el futuro.
A continuación, descargamos el repositorio YUM para Red Hat Enterprise Linux 7:
$ wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
Y lo instalamos en el sistema utilizando el comando rpm
:
$ sudo rpm -Uvh ./mysql57-community-release-el7-11.noarch.rpm
Enseguida ejecutamos el comando yum update
para actualizar la lista de repositorios:
$ sudo yum update
Luego instalamos el paquete MySQL utilizando el comando dnf install
:
$ sudo yum install mysql-community-server
Ahora iniciamos el motor utilizando el comando service
:
$ sudo service mysqld start
Cambiamos la contraseña del usuario root
utilizando la contraseña temporal creada durante el proceso de instalación y guardada en el archivo /var/log/mysqld.log
:
$ sudo grep 'temporary password' /var/log/mysqld.log
2018-03-08T16:59:07.869944Z 1 [Note] A temporary password is generated for root@localhost: n*RQhO4pets5
$ mysqladmin -u root -p password 'New-password-7'
Enter password:
La contraseña debe tener al menos 1 carácter numérico, 1 carácter en minúscula, 1 carácter en mayúscula y 1 carácter especial no-alfanumérico.
Para acceder al motor, debemos hacerlo usando el usuario root
y la contraseña que acabamos de configurar:
$ mysql -u root -p
Enter password:
mysql>
Instalación de MySQL en Archlinux
El paquete MySQL para Archlinux solamente se encuentra en el repositorio de paquetes no oficial llamado AUR (Archlinux User Repository). Debido a esto, el proceso de instalación de MySQL es un poco más tedioso que en las demás distribuciones Linux.
Lo primero que debemos hacer es descargar el tarball desde el repositorio AUR, utilizando el comando wget
:
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/mysql.tar.gz
Luego descomprimimos el tarball e ingresamos al directorio resultante:
$ tar -xvzf mysql.tar.gz
$ cd mysql
Ahora instalamos el grupo de paquetes base-devel
, necesarios para compilar MySQL:
$ sudo pacman -S base-devel
Enseguida ejecutamos el comando makepkg
para compilar el paquete:
$ makepkg -s
El proceso de compilación puede tardar varios minutos.
Finalmente, instalamos el paquete utilizando el comando pacman
:
$ sudo pacman -U *xz
Teniendo MySQL ya instalado, configuramos el motor ejecutando el siguiente comando como super-usuario:
$ mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
La inicialización crea el usuario root
con una contraseña temporal. La contraseña se muestra al final del log que aparece después de ejecutar el comando:
2018-03-08T00:48:33.916980Z 1 [Note] A temporary password is generated for root@localhost: >fBDs=UJk43<
Ahora iniciamos el motor utilizando el comando systemctl
:
$ sudo systemctl start mysqld
Y a continuación cambiamos la contraseña del usuario root
utilizando la contraseña temporal:
$ mysqladmin -u root -p password 'New-password-7'
Enter password:
La contraseña debe tener al menos 1 carácter numérico, 1 carácter en minúscula, 1 carácter en mayúscula y 1 carácter especial no-alfanumérico.
Para acceder al motor, debemos hacerlo usando el usuario root y la contraseña que acabamos de configurar:
$ mysql -u root -p
Enter password:
mysql>
Cómo elevar el nivel de seguridad de la instalación de MySQL
Es imprescindible elevar el nivel de seguridad de MySQL inmediatamente después de haber instalado el motor de bases de datos en un servidor de producción.
Afortunadamente MySQL proporciona el script mysql_secure_installation
, que permite realizar esta importante tarea de una forma sencilla:
$ mysql_secure_installation
Este es un script interactivo que le permitirá:
- Activar el plugin para validación de contraseñas
- Cambiar la contraseña del usuario
root
- Borrar usuarios anónimos que pueden iniciar sesión sin necesidad de crear un usuario con contraseña
- Prohibir que el usuario
root
pueda iniciar sesión desde una máquina remota - Remover la base de datos
test
que cualquier usuario puede usar