Introducción a las bases de datos en el Subsistema Windows para Linux

Esta guía paso a paso le ayudará a empezar a conectar su proyecto en WSL a una base de datos. Introducción a MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server o SQLite.

Requisitos previos

Diferencias entre los sistemas de base de datos

Algunas opciones populares para un sistema de base de datos incluyen:

MySQL es una base de datos relacional de SQL código abierto, que organiza los datos en una o varias tablas en las que los tipos de datos pueden estar relacionados entre sí. Es verticalmente escalable, lo que significa que una máquina definitiva hará el trabajo para usted. Actualmente es el más utilizado de los cuatro sistemas de base de datos.

PostgreSQL (a veces conocido como Postgres) es una base de datos relacional de SQL que pone énfasis en la extensibilidad y el cumplimiento de los estándares. Ahora también puede controlar JSON, pero por lo general funciona mejor para los datos estructurados, el escalado vertical y las necesidades compatibles con ACID, como el comercio electrónico y las transacciones financieras.

Microsoft SQL Server incluye SQL Server en Windows, SQL Server en Linux y SQL en Azure. Estos también son sistemas de administración de bases de datos relacionales configurados en servidores con la función principal de almacenar y recuperar datos según lo solicitado por las aplicaciones de software.

SQLite es una base de datos autocontenida de código abierto, basada en archivos, "sin servidor", conocida por su portabilidad, confiabilidad y buen rendimiento incluso en entornos de poca memoria.

MongoDB es una base de datos de documentos NoSQL diseñada para trabajar con JSON y almacenar datos sin esquemas. Es escalable horizontalmente, lo que significa que varias máquinas más pequeñas harán el trabajo por usted. Es bueno para la flexibilidad y los datos no estructurados, y el almacenamiento en caché de análisis en tiempo real.

Redis es un almacén de estructura de datos en memoria NoSQL de código abierto. Usa pares clave-valor para el almacenamiento en lugar de los documentos.

Instalar MySQL

Para instalar MySQL en una distribución de Linux que se ejecuta en WSL, basta con que siga las instrucciones sobre la instalación de MySQL en Linux en los documentos de MySQL. Es posible que primero deba habilitar la compatibilidad con systemd en el archivo de configuración wsl.conf.

Ejemplo de uso de la distribución de Ubuntu:

  1. Abra la línea de comandos de Ubuntu y actualice los paquetes disponibles: sudo apt update
  2. Una vez actualizados los paquetes, instala MongoDB con sudo apt install mysql-server.
  3. Confirma la instalación y obtén el número de versión mysql --version.
  4. Inicie mySQL Server/compruebe el estado: systemctl status mysql
  5. Para abrir el símbolo del sistema de MySQL, escriba: sudo mysql
  6. Para ver qué bases de datos tiene disponibles, escriba lo siguiente en el símbolo del sistema MySQL: SHOW DATABASES;
  7. Para crear una nueva base de datos, escriba:CREATE DATABASE database_name;
  8. Para eliminar una base de datos, escriba: DROP DATABASE database_name;

Para más información sobre cómo trabajar con bases de datos MySQL, vea la documentación de MySQL.

Para trabajar con bases de datos MySQL en VS Code, pruebe la extensión MySQL.

También puede ejecutar el script de seguridad incluido. Esto cambia algunas de las opciones predeterminadas menos seguras para cosas como inicios de sesión raíz remotos y usuarios de ejemplo. Este script también incluye pasos para cambiar la contraseña del usuario raíz de MySQL. Para ejecutar el script de seguridad:

  1. Inicie un servidor MySQL: sudo service mysql start
  2. Inicie las indicaciones del script de seguridad: sudo mysql_secure_installation
  3. El primer mensaje le preguntará si desea configurar el COMPONENTE VALIDAR CONTRASEÑA, que puede usarse para probar la solidez de su contraseña MySQL. Si desea establecer una contraseña sencilla, no debe establecer este componente.
  4. Después, establecerá/cambiará una contraseña para el usuario raíz de MySQL, y decidirá si desea quitar usuarios anónimos, si desea permitir que el usuario raíz inicie sesión de forma local y remota, si desea quitar la base de datos de prueba y, por último, si desea volver a cargar las tablas de privilegios inmediatamente.

Instalación de PostgreSQL

Para instalar PostgreSQL en WSL (es decir, Ubuntu):

  1. Abre el terminal de WSL (es decir, Ubuntu 18.04).
  2. Actualiza los paquetes de Ubuntu: sudo apt update.
  3. Una vez que los paquetes se hayan actualizado, instala PostgreSQL (y el paquete -contrib que tenga algunas utilidades útiles) con: sudo apt install postgresql postgresql-contrib.
  4. Confirma la instalación y obtén el número de versión psql --version.

Hay 3 comandos que debes conocer una vez instales PostgreSQL:

  • sudo service postgresql status para comprobar el estado de la base de datos.
  • sudo service postgresql start para empezar a ejecutar la base de datos.
  • sudo service postgresql stop para detener la ejecución de la base de datos.

El usuario administrador predeterminado, postgres, necesita tener una contraseña asignada para poder conectarse a una base de datos. Para establecer una contraseña:

  1. Escribe el comando: sudo passwd postgres.
  2. Recibirás un aviso para escribir la nueva contraseña.
  3. Cierra y vuelve a abrir el terminal.

Para ejecutar PostgreSQL con psql shell: :

  1. Inicia el servicio Postgres: sudo service postgresql start.
  2. Conéctate al servicio Postgres y abre el shell de psql: sudo -u postgres psql.

Una vez que hayas escrito correctamente el shell de psql, verás que el cambio de la línea de comandos tiene el siguiente aspecto: postgres=#.

Nota:

Como alternativa, puedes abrir el shell de psql si cambias al usuario Postgres por su - postgres y, a continuación, escribes el comando psql.

Para salir de postgres=# escriba: \q o use la tecla de método abreviado: Ctrl+D

Para ver qué cuentas de usuario se han creado en la instalación de PostgreSQL, usa psql --command="\du"desde el terminal WSL o simplemente \du, si tienes abierto el shell de psql. Este comando mostrará las columnas siguientes: Nombre de usuario de la cuenta, Lista de atributos de roles y Miembro de grupo(s) de roles. Para salir y volver a la línea de comandos, escribe q.

Para más información sobre cómo trabajar con bases de datos postgreSQL, vea la documentación de PostgreSQL.

Para trabajar con bases de datos postgreSQL en VS Code, pruebe la extensión PostgreSQL.

Instalación de MongoDB

Para instalar MongoDB, consulte los documentos de Mongodb: Instalación de MongoDB Community Edition en Linux

La instalación de MongoDB puede requerir pasos ligeramente diferentes en función de la distribución de Linux que se use para la instalación. Tenga en cuenta también que la instalación de MongoDB puede diferir en función del número de versión que desee instalar. Use la lista desplegable versión de la esquina superior izquierda de la documentación de MongoDB para seleccionar la versión que se alinea con el objetivo. Por último, es posible que tenga que habilitar la compatibilidad con systemd en el archivo de configuración wsl.conf de la distribución de Linux que usa con WSL. El comando systemctl forma parte del sistema systemd init y puede que no funcione si la distribución usa systemv.

VS Code permite trabajar con bases de datos de MongoDB mediante la extensión de Azure CosmosDB. Puedes crear, administrar y consultar las bases de datos de MongoDB desde VS Code, así como conectarte a ellas. Para obtener más información, visite la documentación de VS Code: Trabajar con MongoDB.

Obtén más información en los documentos de MongoDB:

Instalar Microsoft SQL Server

Para instalar SQL Server en una distribución de Linux ejecutada por WSL: SQL Server en Linux. Para trabajar con bases de datos de Microsoft SQL Server en VS Code, pruebe la extensión MSSQL.

Instalar SQLite

Para instalar SQLite en WSL (es decir, Ubuntu):

  1. Abre el terminal de WSL (es decir, Ubuntu 18.04).
  2. Actualiza los paquetes de Ubuntu: sudo apt update.
  3. Una vez actualizados los paquetes, instale SQLite3 consudo apt install sqlite3.
  4. Confirma la instalación y obtén el número de versión sqlite3 --version.

Para crear una base de datos de prueba, denominada "example.db", escriba: sqlite3 example.db

Para ver una lista de las bases de datos de SQLite, escriba: .databases

Para ver el estado de la base de datos, escriba: .dbinfo ?DB?

La base de datos estará vacía después de la creación. Puede crear una nueva tabla para la base de datos con CREATE TABLE empty (kol INTEGER);.

Ahora, al escribir , .dbinfo ?DB? se mostrará la base de datos que ha creado.

Para salir del símbolo del sistema de SQLite, escriba: .exit

Para obtener más información sobre cómo trabajar con una base de datos de SQLite, vea la documentación de SQLite.

Para trabajar con bases de datos de SQLite en VS Code, pruebe la extensión SQLite.

Instalación de Redis

Para instalar Redis en WSL (es decir, Ubuntu):

  1. Abre el terminal de WSL (es decir, Ubuntu 18.04).
  2. Actualiza los paquetes de Ubuntu: sudo apt update.
  3. Una vez actualizados los paquetes, instale Redis con: sudo apt install redis-server.
  4. Confirma la instalación y obtén el número de versión redis-server --version.

Para empezar a ejecutar el servidor de Redis: sudo service redis-server start

Compruebe si redis funciona (redis-cli es la utilidad de interfaz de línea de comandos para comunicarse con Redis): redis-cli ping debe devolver una respuesta de "PONG".

Para dejar de ejecutar el servidor de Redis: sudo service redis-server stop

Para más información sobre cómo trabajar con una base de datos de Redis, vea la documentación de Redis.

Para trabajar con bases de datos de Redis en VS Code, pruebe la extensión Redis.

Vea los servicios que ejecutan y configuran alias de perfil.

Para ver los servicios que actualmente se están ejecutando en la distribución de WSL, escriba: service --status-all

Escribir sudo service mongodb start o sudo service postgres start y sudo -u postgrest psql puede resultar tedioso. Sin embargo, puedes considerar la posibilidad de configurar los alias en el archivo .profile de WSL para que estos comandos sean más rápidos de usar y más fáciles de recordar.

Para configurar tu propio alias personalizado, o acceso directo, a fin de ejecutar estos comandos:

  1. Abre el terminal de WSL y escribe cd ~ para asegurarte de que te encuentras en el directorio raíz.

  2. Abre el archivo .profile, que controla la configuración del terminal, con el editor de texto de terminal Nano: sudo nano .profile.

  3. En la parte inferior del archivo (no cambies la configuración # set PATH), agrega lo siguiente:

    # My Aliases
    alias start-pg='sudo service postgresql start'
    alias run-pg='sudo -u postgres psql'
    

    Esto te permitirá escribir start-pg para empezar a ejecutar el servicio PostgreSQL y run-pg para abrir el shell psql. Puedes cambiar start-pg y run-pg a cualquier nombre que quieras, pero ten cuidado de no sobrescribir un comando que Postgres ya uses.

  4. Una vez que hayas agregado los nuevos alias, sal del editor de texto de Nano con Control + X, selecciona Y (Sí) cuando se te pida que guardes y presiona Entrar (el nombre de archivo debe ser .profile).

  5. Cierra y vuelve a abrir el terminal de WSL y, a continuación, prueba los nuevos comandos de alias.

Solucionar problemas

Error: argumento fdatasync de sincronización de directorios no válido

Asegúrese de que ejecuta la distribución de Linux en modo WSL 2. Para obtener ayuda para cambiar de WSL 1 a WSL 2, vea Establecer la versión de distribución en WSL 1 o WSL 2.

Recursos adicionales