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 tus productos de Alojamiento compartido, VPS y dedicado. Este artículo te ayuda a instalarlo y configurarlo en un DreamCompute con Debian o Ubuntu.

Debido a los requisitos de memoria combinados de MySQL 8 y Ubuntu 20, DreamHost recomienda que no instales MySQL 8 en instancias "semisónicas"..

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

Ver los paquetes instalados

Puedes verificar cuales paquetes fueron instalados corriendo el siguiente comando:

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

ii libaprutil1-dbd-sqlite3:amd64 1.6.1-4ubuntu2          amd64 Apache Portable Runtime Utility Library - SQLite3 Driver
ii libsqlite3-0:amd64 3.31.1-4 amd64 SQLite 3 shared library
ii mysql-client-8.0 8.0.26-0ubuntu0.20.04.2 amd64 MySQL database client binaries
ii mysql-client-core-8.0 8.0.26-0ubuntu0.20.04.2 amd64 MySQL database core client binaries
ii mysql-common 5.8+1.0.5ubuntu2 all MySQL database common files, e.g. /etc/mysql/my.cnf
ii mysql-server 8.0.26-0ubuntu0.20.04.2 all MySQL database server (metapackage depending on the latest version)
ii mysql-server-8.0 8.0.26-0ubuntu0.20.04.2 amd64 MySQL database server binaries and system database setup
ii mysql-server-core-8.0 8.0.26-0ubuntu0.20.04.2 amd64 MySQL database server binaries
ii php-mysql 2:7.4+75 all MySQL module for PHP [default]
ii php7.4-mysql 7.4.3-4ubuntu2.5 amd64 MySQL module for PHP

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 tengas 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]:$ sudo 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]:$ sudo mysql_secure_installation

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

Puedes optar por habilitar el 'Validate Password Component', 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. 2 es recomendado.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT 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 component?

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

Crear una contraseña root

El cuadro de diálogo te pedirá que establezcas la contraseña de root.

Please set the password for root here

New password:

Re-enter new password:

Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

A continuación, se te solicitarán varias configuraciones de seguridad. Ingresa Yes para todos, a menos que tengas una razón específica para dejar ciertas configuraciones como están.

Deshabilitar el usuario anónimo

Es una buena idea deshabilitar el usuario anónimo.

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?