Como configurar MYSQL en DreamCompute corriendo Debian o Ubuntu

Generalidades

MySQL es uno de los motores de base de datos más populares utilizados para sitios web. MySQL es una parte importante de los stack de LAMP (Linux, Apache, MySQL, PHP), así como de otros stack de AMP, y es compatible con muchos paquetes de software web.

MySQL es el único software de base de datos relacional que ofrece DreamHost para sus productos de alojamiento compartido, VPS y dedicado. Este artículo te ayuda a instalarlo y configurarlo en un DreamCompute con Debian o Ubuntu.

Instalar MySQL

Debian y Ubuntu a veces ofrecen múltiples versiones de MySQL en caso de que tus necesidades requieran una versión anterior, sin embargo, generalmente es mejor optar por la versión predeterminada si no se necesitan requisitos específicos.

Para instalar la versión predeterminada de MySQL en tu sistema, corre los siguientes comandos:

[user@instance]:$ sudo apt-get update
[user@instance]:$ sudo apt-get install -y mysql-server

Antes de que se complete la instalación, aparecerá un cuadro de diálogo que te pedirá que especifiques una contraseña raíz del servidor MySQL.

Ver los paquetes instalados

Puedes verificar cuales paquetes fueron instalados corriendo el siguiente comando:

[user@instance]:$ dpkg -l | grep mysql

ii  mysql-client-5.7        5.7.21-0ubuntu0.16.04.1   amd64   MySQL database client binaries
ii  mysql-client-core-5.7   5.7.21-0ubuntu0.16.04.1   amd64   MySQL database core client binaries
ii  mysql-common            5.7.21-0ubuntu0.16.04.1   all     MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-server            5.7.21-0ubuntu0.16.04.1   all     MySQL database server (metapackage depending on the latest version)
ii  mysql-server-5.7        5.7.21-0ubuntu0.16.04.1   amd64   MySQL database server binaries and system database setup
ii  mysql-server-core-5.7   5.7.21-0ubuntu0.16.04.1   amd64   MySQL database server binaries

Configurar y usar MySQL

La configuración de los archivos están almacenados en el directorio /etc/mysql.

[user@instance]:$ ls -1 /etc/mysql
/conf.d
debian.cnf
debian-start
my.cnf
my.cnf.fallback
mysql.cnf
/mysql.conf.d

El archivo de configuración /etc/mysql/mysql.conf.d/mysqld.cnf

Hay algunas configuraciones que tal vez desees cambiar para personalizar MySQL. Se pueden realizar los siguientes cambios en el archivo /etc/mysql/mysql.conf.d/mysqld.cnf.

Cambiar la dirección 'bind'.

Edita este archivo y verás la dirección bind:

bind-address   = 127.0.0.1

Esta es la dirección IP que MySQL está escuchando. Solo puede escuchar una dirección IP en cualquier momento. De forma predeterminada, escuchará 127.0.0.1 (también conocido como localhost), lo que significa que solo se podrá acceder al servicio MySQL desde la instancia en la que está instalado.

Si deseas conectarte a MySQL desde otras instancias de DreamCompute, puedes cambiar esto a la dirección IPv4 o IPv6 de la instancia. Así es como se vería una dirección bind mysql configurada en IPv6:

bind-address   = 2607:f298:6050:8a28:f816:3eff:fe62:c9c3

max_allowed_packet

Este valor es el tamaño más grande permitido para un solo paquete, que normalmente solo es relevante para restaurar copias de seguridad. Si se creó una copia de seguridad en una instancia con una configuración alta para este valor, es posible que tenga dificultades para restaurarla en otra máquina con una configuración más baja. El valor predeterminado es 16M.

Reiniciar el servicio MySQL

Si se realizan cambios en tu configuración de mysql, debes reiniciar MySQL para que los lea. Esto se puede hacer corriendo lo siguiente:

[user@instance]:$ sudo service mysql restart

Conectar a tu shell MySQL

Si necesitas configurar nuevas bases de datos o configurar nuevos usuarios, debes iniciar sesión en tu Shell de MySQL. Ejecuta cualquiera de los siguientes comandos para iniciar sesión.

[user@instance]:$ mysql -u root -p

El mensaje cambiará a lo siguiente:

mysql> 

Ahora puedes correr comandos mysql para configurar una base de datos.

MySQL seguro

Una vez que se hayas instalado MySQL, es una buena idea proteger tu configuración. Corre el siguiente comando para abrir un cuadro de diálogo de configuración interactivo:

[user@instance]:$ mysql_secure_installation

Securing the MySQL server deployment.
Enter password for user root:

Establecer un valor para la validación de la contraseña

Puedes optar por habilitar el 'Complemento de contraseña', que prueba la solidez de tus contraseñas MySQL. Si deseas habilitar esto, escribe la letra 'y'. A continuación, puedes decidir qué tan seguras deseas que sean las nuevas contraseñas.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Cambiar tu contraseña root

El cuadro de diálogo te preguntará si deseas cambiar tu contraseña de root. Esto no es necesario ya que lo acabas de crear durante la instalación.

Using existing password for root.

Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

 ... skipping.

Deshabilitar el usuario anonimo

Es una buena idea deshabilitar el usuario anonimo.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Deshabilitar el inicio de sesión de root

También se recomienda deshabilitar el inicio de sesión de root.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

Eliminar la base de datos 'test'

Deberías eliminar la base de datos 'test' pues no hay necesidad de tenerlo.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Recargar

Recarga para que las nuevas configuraciones tomen efecto.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?