Pide tu presupuesto ya!

Ponga en funcionamiento su servidor de base de datos

Eres el administrador de base de datos con barra diagonal del sistema y necesita construir un sistema de gestión de bases de datos (DBMS) para un nuevo proyecto. Si eliges instalar MySQL en Ubuntu, estás de suerte. MySQL es rápido, confiable, versátil y gratuito: ¡una buena opción!

Este tutorial lo guiará a través de la instalación de un servidor MySQL en Ubuntu, lo hará seguro y creará un usuario dedicado con permisos limitados para evitar exponer la cuenta raíz. Al final, habrá creado un servidor MySQL que podrá usar en su proyecto para alojar bases de datos.

Requisitos previos

Este tutorial será una demostración práctica. Si desea seguir adelante, asegúrese de tener un servidor Ubuntu 20.04 o posterior con una cuenta de usuario no root con privilegios sudo.

Instale MySQL en Ubuntu (desde el repositorio)

El repositorio de paquetes APT de Ubuntu incluye el paquete MySQL de forma predeterminada, lo que hace que sea conveniente instalar MySQL Ubuntu con un solo comando.

NOTA: Es posible que el repositorio APT predeterminado de Ubuntu no siempre tenga la última versión de MySQL.

Para instalar MySQL Ubuntu, proceda de la siguiente manera.

1. Abra su cliente SSH preferido e inicie sesión en su servidor Ubuntu.

2. Asegúrese de que su lista de paquetes sea reciente ejecutando el siguiente comando. Este comando actualiza la lista de paquetes disponibles en el repositorio de paquetes APT.

3. Ahora, instale el mysql-server paquete ejecutando el siguiente comando. Espere a que finalice la instalación.

sudo apt install mysql-server -y

Como puede ver a continuación, la última versión de MySQL del repositorio de APT es 8.0.28.

Instale el paquete MySQL Ubuntu desde el repositorio APT predeterminado

4. Por último, ejecute el siguiente comando para verificar y confirmar si el mysql El servicio ya está funcionando.

sudo systemctl status mysql
Verificando el estado del servicio MySQL
Verificando el estado del servicio MySQL

Instalación de MySQL desde el repositorio oficial

Si no le gusta esperar a que el repositorio de su distribución de Linux se ponga al día, descargar e instalar el paquete DEB es la mejor manera de obtener las últimas funciones y correcciones de errores.

Los desarrolladores de MySQL proporcionan su repositorio de software para instalar la última versión de MySQL, pero Ubuntu no sabe dónde encontrar ese repositorio (todavía). Siga los pasos a continuación para descargar e instalar MySQL desde el repositorio oficial.

1. Abra el navegador web en su computadora y navegue hasta el Repositorio MySQL APT página.

2. Una vez en la página de descarga, haga clic en Descargar botón, como puede ver a continuación.

Al hacer clic en el enlace de descarga
Al hacer clic en el enlace de descarga

3. En la página siguiente, haga clic derecho en No gracias, solo inicia mi descarga. enlace y haga clic Copiar dirección de enlace.

Copiando el enlace de descarga de MySQL
Copiando el enlace de descarga de MySQL

4. Vuelva a su sesión de terminal SSH y descargue el paquete MySQL en el /tmp directorio de inicio del directorio ejecutando el curl comando a continuación. Asegúrese de cambiar el valor de la URL después del -OL parámetro con la URL que copió en el paso anterior.

cd /tmp && curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
Descargando el paquete MySQL DEB
Descargando el paquete MySQL DEB

5. Después de descargar el paquete, ejecute el dpkg comando a continuación para instalar el archivo del paquete MySQL.

sudo dpkg -i mysql-apt-config*

6. En la página de configuración, aparece preguntando Which MySQL product do you wish to configure? – Presione la flecha hacia abajo hasta seleccionar Oky presione Entrar.

Seleccionar el producto MySQL a configurar
Seleccionar el producto MySQL a configurar

7. Ahora, ejecute el siguiente comando para actualizar su lista de paquetes para que APT pueda encontrar los nuevos paquetes MySQL.

8. Ahora que APT sabe dónde encontrar la última versión de MySQL, ejecute el siguiente comando para instalar mysql-server paquete.

sudo apt install mysql-server -y

9. Escriba la nueva contraseña segura para la base de datos MySQL. raíz cuenta en el mensaje de configuración y presione Entrar.

Creando la contraseña raíz de MySQL
Creando la contraseña raíz de MySQL

Vuelva a ingresar la contraseña y presione Enter para confirmar.

Confirmando la nueva contraseña
Confirmando la nueva contraseña

10. Seleccione Use Strong Password Encryption (RECOMMENDED)y presione Entrar en la selección del complemento de autenticación predeterminado.

Seleccionar el método de autenticación predeterminado
Seleccionar el método de autenticación predeterminado

Espere a que se complete la instalación. La siguiente captura de pantalla muestra la versión del servidor MySQL que instaló. En este ejemplo, la última versión es 8.0.28.

Instale el paquete MySQL Ubuntu desde el repositorio oficial
Instale el paquete MySQL Ubuntu desde el repositorio oficial

11. Ejecute el systemctl comando a continuación para verificar que el servicio MySQL se esté ejecutando.

sudo systemctl status mysql

Verá el siguiente resultado. Este resultado muestra que el servicio está activo (en ejecución) y habilitado.

Verificando el estado del servicio MySQL
Verificando el estado del servicio MySQL

Asegurar su servidor MySQL

La instalación predeterminada del servidor MySQL no está protegida de fábrica y es necesario realizar algunos pasos adicionales para proteger su servidor MySQL. Afortunadamente, los desarrolladores de MySQL han creado un script de configuración que hace la mayor parte del trabajo por usted.

El script de seguridad se llama mysql_secure_installationque puedes encontrar bajo el /usr/bin directorio. El script modifica valores predeterminados menos seguros, como inicios de sesión raíz remotos y usuarios de muestra.

1. Ejecute el siguiente comando a continuación para iniciar el script de seguridad en el terminal. Este script le hará varias preguntas Sí/No para configurar la seguridad del servidor MySQL.

sudo mysql_secure_installation

Si instaló MySQL desde el repositorio predeterminado de Ubuntu, verá el siguiente mensaje que indica que se está conectando a MySQL con una contraseña en blanco. No te preocupes; solucionará ese problema en los pasos siguientes.

Conexión a MySQL sin contraseña.
Conexión a MySQL sin contraseña.

2. En el siguiente mensaje que le pedirá que configure el VALIDAR COMPONENTE CONTRASEÑAtipo y y presione Entrar. Este componente valida si las contraseñas de los usuarios de MySQL cumplen con el requisito de complejidad.

Configurar la validación de contraseña
Configurar la validación de contraseña

3. A continuación, seleccione el nivel de política de validación de contraseña que desea implementar. Las opciones son:

  • LOW – requiere una contraseña con un mínimo de ocho caracteres.
  • MEDIUM – requiere una contraseña con ocho o más caracteres, incluidos números, mayúsculas y minúsculas y caracteres especiales.
  • STRONG – igual que MEDIUM pero compara la contraseña con un archivo de diccionario para su validación.

En este ejemplo, escriba 2 para seleccionar FUERTE y presione Entrar.

Seleccionar el nivel de política de validación de contraseña
Seleccionar el nivel de política de validación de contraseña

MySQL no tiene un archivo de diccionario predeterminado. Como tal, deberá crear un archivo de diccionario y modificar el valor de la variable del sistema validar_contraseña_diccionario_archivo a la ruta del archivo del diccionario. Creando y configurando el archivo de diccionario de contraseñas no está dentro del alcance de este tutorial.

4. Para asegurarse de que la contraseña de root cumpla con los requisitos de complejidad de la contraseña, configure la contraseña de root nuevamente y vuelva a ingresarla. Luego, el script le mostrará la puntuación de seguridad de la contraseña. Prensa y para confirmar el guardado de la contraseña y presione Enter.

Establecer la contraseña de root segura
Establecer la contraseña de root segura

5. A continuación, el script pregunta si debe eliminar el anónimo usuario que creó la instalación de MySQL. Este usuario es seguro de eliminar, así que escribe y y presione Enter para eliminar el usuario anónimo.

Eliminar el usuario anónimo de MySQL
Eliminar el usuario anónimo de MySQL

6. Para bloquear aún más MySQL, escriba y y presione Enter para no permitir el inicio de sesión remoto para root. Después de este paso, la cuenta raíz sólo puede iniciar sesión en MySQL desde el servidor y no desde clientes remotos.

Deshabilitar el inicio de sesión remoto como root
Deshabilitar el inicio de sesión remoto como root

7. A continuación, retire el test base de datos. Esta base de datos es sólo para pruebas y no debe entrar en producción. Para eliminar (eliminar) la base de datos de prueba, escriba yy presione Entrar.

Eliminando la base de datos de prueba
Eliminando la base de datos de prueba

8. Finalmente, vuelva a cargar las tablas de privilegios para que todos los cambios surtan efecto de inmediato. Tipo y y presione Enter para recargar.

Recargando la tabla de privilegios de MySQL
Recargando la tabla de privilegios de MySQL

Ahora ha protegido con éxito su servidor MySQL.

Crear un nuevo usuario de MySQL y otorgar permisos limitados

En este punto, sólo hay una cuenta de usuario en su servidor MySQL, que es la raíz usuario. Como su nombre lo indica, la cuenta raíz tiene acceso completo al servidor MySQL y a todos los recursos que contiene.

Usar constantemente la cuenta de usuario raíz no es una buena práctica y puede representar un riesgo para la seguridad. Debe reservar la cuenta raíz para tareas administrativas que necesiten sus permisos. De lo contrario, debería utilizar una cuenta con privilegios limitados y a continuación se encuentran las instrucciones para crear una.

1. Inicie sesión en MySQL como usuario root en la terminal ejecutando el siguiente comando.

Iniciar sesión en el indicador de MySQL
Iniciar sesión en el indicador de MySQL

2. A continuación, ejecute el CREATE USER declaración para crear un nuevo usuario. El siguiente ejemplo crea una nueva cuenta de usuario llamada ata que sólo puede iniciar sesión desde el localhost. Asegúrese de proporcionar una fuerte password que cumpla con la política de contraseñas que configuró anteriormente.

CREATE USER 'ata'@'localhost' IDENTIFIED BY 'password';

Supongamos que crea un usuario que puede iniciar sesión desde una computadora remota específica; en su lugar, ejecute el siguiente comando. Este comando reemplaza localhost con la dirección IP de la computadora remota.

CREATE USER 'ata'@'ip_address' IDENTIFIED BY 'password';

Para crear un usuario que pueda iniciar sesión en MySQL desde cualquier lugar, reemplace localhost o ip_address con %.

CREATE USER 'ata'@'%' IDENTIFIED BY 'password';

Termine siempre sus declaraciones MySQL con un punto y coma (;). Además, encerrar los valores entre comillas simples (‘) ayuda a evitar errores de sintaxis SQL.

El resultado a continuación muestra la creación exitosa del usuario.

Creando una nueva cuenta de usuario MySQL
Creando una nueva cuenta de usuario MySQL

3. Ahora que ha creado el usuario, ejecute el GRANT declaración junto a conceder permisos. Hay muchos privilegios de MySQL que puede asignar al usuario. Pero en este ejemplo, el comando otorgará los siguientes privilegios al usuario 'ata'@'localhost‘ a todos (*.*) bases de datos y tablas.

  • ALTER – otorga al usuario permiso para modificar las estructuras de las tablas.
  • SELECT – da al usuario acceso a la SELECT declaración, que permite leer el contenido de la base de datos.
  • CREATE – otorga al usuario permiso para crear bases de datos y tablas.
  • INSERT – permite al usuario insertar filas en la tabla.
  • DELETE – permite al usuario eliminar filas de la tabla.
  • UPDATE – el usuario puede actualizar filas en la tabla.
  • REFERENCES – habilitar la creación de claves externas.
  • RELOAD – el usuario puede ejecutar el FLUSH declaración y comandos.
GRANT CREATE, ALTER, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO ‘ata'@'localhost’;

Referirse a Privilegios proporcionados por MySQL documentación para obtener una lista completa de todos los privilegios. Puede agregar, eliminar y combinar permisos como desee.

El resultado a continuación muestra que la concesión de permisos se realizó correctamente.

Otorgar permisos limitados de MySQL al nuevo usuario
Otorgar permisos limitados de MySQL al nuevo usuario

4. A continuación, ejecute el siguiente comando para recargar las tablas de privilegios. Al hacerlo, se asegurará de que todos los cambios que ha realizado hasta ahora entren en vigor de inmediato.

5. Por último, cierre sesión en MySQL.

Probando su servidor MySQL

Así que instaló y aseguró su servidor MySQL y configuró una nueva cuenta de usuario limitada. Ahora es el momento de comprobar si todo funciona como esperabas.

1. Inicie sesión en MySQL como ata usuario. De esta manera, podrá probar si esta cuenta de usuario limitada funciona según lo planeado. El -u El indicador especifica la cuenta para iniciar sesión, mientras que el -p flag invoca la solicitud de contraseña.

Si no agrega el indicador -p, la cuenta mysql intentará iniciar sesión sin una contraseña, lo que fallará ya que la cuenta de inicio de sesión tiene una contraseña.

Iniciar sesión en MySQL como nueva cuenta de usuario
Iniciar sesión en MySQL como nueva cuenta de usuario

2. A continuación, pruebe el privilegio del usuario ejecutando lo siguiente CREATE declaración para crear una nueva base de datos llamada ata_db.

Debería ver el mensaje Consulta OK, que indica una creación exitosa de la base de datos.

Creando una nueva base de datos
Creando una nueva base de datos

3. Ejecute el show databases; declaración para ver una lista de todas las bases de datos que están disponibles para su uso.

Debería ver la base de datos ata_db que creó anteriormente, como se muestra a continuación.

Listado de todas las bases de datos MySQL
Listado de todas las bases de datos MySQL

Conclusión

En este artículo, ha aprendido cómo instalar el servidor MySQL Ubuntu y configurar los ajustes de seguridad del servidor. También aprendió a crear una nueva cuenta de usuario con privilegios limitados y a probar los permisos del nuevo usuario creando una nueva base de datos.

En este punto, debería tener un servidor MySQL Ubuntu completamente funcional que pueda utilizar para sus necesidades de desarrollo y producción. Y si prefiere administrar MySQL con una GUI, ¿tal vez podría instalar una interfaz web a continuación?

Written by

Leave a comment