Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server - Linux
Subsistema de Windows para Linux (WSL) es una característica de Windows que permite ejecutar un entorno linux directamente en la máquina Windows, sin necesidad de una máquina virtual o arranque dual. WSL proporciona una experiencia perfecta y productiva para los desarrolladores que desean usar Windows y Linux simultáneamente. Para obtener más información, consulte ¿Qué es el Subsistema de Windows para Linux?
SQL Server en WSL es solo para uso de desarrollo
SQL Server en WSL 2 está pensado solo para fines de desarrollo y no se admite para cargas de trabajo de producción. Se recomienda ejecutar SQL Server en entornos WSL en una de las plataformas admitidas como se documenta, para la versión de SQL Server que quiere ejecutar.
Para cualquier problema relacionado con el soporte técnico, puede obtener soporte técnico de Microsoft.
Introducción a SQL Server en WSL 2
Hay dos maneras de empezar a trabajar con SQL Server en WSL 2:
Instale SQL Server como
systemd
servicio, que se puede administrar mediantesystemctl
comandos. Asegúrese de habilitarsystemd
en WSL. Para obtener más información, vea Cómo habilitar systemd.Implemente contenedores de SQL Server en WSL. Para esta opción, debe instalar un motor de contenedor de Linux en WSL, como Docker o Podman, y, a continuación, implementar contenedores de SQL Server.
Prerrequisitos
Instale WSL 2. Asegúrese de que ejecuta Windows 10 versión 2004 o posterior (compilación 19041 y posterior) o Windows 11. Para instalar WSL, abra un símbolo del sistema de PowerShell o Windows en modo de administrador y ejecute el siguiente comando:
wsl --install
Para obtener instrucciones detalladas, consulte Instalación de Linux en Windows con WSL. Para obtener información sobre cómo configurar el entorno de WSL para el desarrollo, consulte Configuración de un entorno de desarrollo de WSL.
Instalación de SQL Server en WSL
En esta sección se describen los pasos para configurar una distribución de Linux en WSL y cómo instalar SQL Server en esa distribución de Linux.
Elección de la distribución de Linux
Puede enumerar todas las distribuciones válidas que se pueden instalar en WSL mediante el siguiente comando:
wsl -l -o
La salida es similar a la del siguiente ejemplo.
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
Para este inicio rápido, instale Ubuntu 22.04 y, después, instale SQL Server 2022 en esa distribución.
Para instalar Ubuntu 22.04, ejecute el siguiente comando. Anote la cuenta de usuario y la contraseña de UNIX. En este ejemplo, use wsluser
como nombre de usuario.
wsl --install -d Ubuntu-22.04
Debería ver una salida similar al ejemplo siguiente: Al final, debería mostrar que ha iniciado sesión en el shell de Bash de Ubuntu 22.04.
Installing: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS has been installed.
Launching Ubuntu 22.04 LTS...
Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: wsluser
New password:
Retype new password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.167.4-microsoft-standard-WSL2 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Tue Dec 3 00:32:14 IST 2024
System load: 0.33 Processes: 32
Usage of /: 0.1% of 1006.85GB Users logged in: 0
Memory usage: 2% IPv4 address for eth0: 10.18.123.249
Swap usage: 0%
This message is shown once a day. To disable it please create the
/home/wsluser/.hushlogin file.
Instalación de SQL Server
Una vez que haya iniciado sesión en el shell de Bash de Ubuntu 22.04, puede seguir los pasos descritos en Inicio rápido: Instalación de SQL Server y creación de una base de datos en Ubuntu para instalar SQL Server 2022.
También debe instalar las herramientas de línea de comandos de SQL Server .
Obtención de la dirección IP
Para identificar la dirección IP a la que conectarse mediante SQL Server Management Studio (SSMS), ejecute el comando de la ifconfig
siguiente manera:
ifconfig
Debería ver una salida similar al ejemplo siguiente:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.19.50.241 netmask 255.255.240.0 broadcast 10.19.63.255
inet6 fe80::215:5dff:fe76:c05d prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:76:c0:5d txqueuelen 1000 (Ethernet)
RX packets 2146 bytes 1452448 (1.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1905 bytes 345288 (345.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2039 bytes 4144340 (4.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2039 bytes 4144340 (4.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Implementación de contenedores de SQL Server en WSL
Para implementar contenedores en WSL, primero debe instalar un motor de contenedor linux, como Docker. Para obtener más información, consulte Introducción a los contenedores remotos de Docker en WSL. Una vez instalado el motor de Docker, implemente la imagen de contenedor de SQL Server como se indica a continuación.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-d mcr.microsoft.com/mssql/server:2022-latest
Nota:
La contraseña debe seguir la directiva de contraseña predeterminada de SQL Server. De forma predeterminada, la contraseña debe tener al menos ocho caracteres y contener caracteres de tres de los siguientes cuatro conjuntos: mayúsculas, minúsculas, dígitos en base 10 y símbolos. Las contraseñas pueden tener hasta 128 caracteres. Use contraseñas lo más largas y complejas posible.
Adición de almacenamiento persistente con WSL para contenedores de SQL Server
Puede crear volúmenes de datos como se describe en Montaje de un directorio host como volumen de datos.
Por ejemplo, ejecute el siguiente comando para configurar un volumen denominado sql_volume
ubicado en /var/opt/mssql/
.
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \
-e "MSSQL_PID=Developer" -e "MSSQL_AGENT_ENABLED=true" \
-p 14333:1433 --name sqlcontainerwsl --hostname sqlcontainerwsl \
-v sql_volume:/var/opt/mssql/ \
-d mcr.microsoft.com/mssql/server:2022-latest
Incluso si ejecuta el wsl --terminate
comando, los datos no se pierden. Al iniciar WSL de nuevo y ejecutar el comando docker run
para implementar con el volumen sql_volume
, todos los datos siguen intactos.
Si desea eliminar el volumen persistente, asegúrese de que el contenedor que utiliza el volumen esté detenido y eliminado, y luego ejecute el siguiente comando.
docker volume rm sql_volume
Observaciones
Debe poder configurar la mayoría de las características admitidas para SQL Server en Linux con fines de desarrollo, excepto las características de continuidad de negocio que dependen de los clústeres. Estas características, como Pacemaker o HPE Serviceguard, no se admiten en WSL.
Para obtener una lista completa de las características no admitidas para SQL Server en Linux, consulte Ediciones y características admitidas de SQL Server 2022 en Linux.
Conexión local
En los pasos siguientes se usa sqlcmd para conectarse localmente a la nueva instancia de SQL Server.
Precaución
La contraseña debe seguir la directiva de contraseña predeterminada de SQL Server. De forma predeterminada, la contraseña debe tener al menos ocho caracteres y contener caracteres de tres de los siguientes cuatro conjuntos: mayúsculas, minúsculas, dígitos en base 10 y símbolos. Las contraseñas pueden tener hasta 128 caracteres. Use contraseñas lo más largas y complejas posible.
Ejecute sqlcmd con parámetros para el nombre de SQL Server (
-S
), el nombre de usuario (-U
) y la contraseña (-P
). En este tutorial se conecta de forma local, por lo que el nombre del servidor eslocalhost
. El nombre de usuario essa
y la contraseña es la que proporcionó para la cuenta desa
durante la configuración.sqlcmd -S localhost -U sa -P '<password>'
Nota:
Las versiones más recientes de sqlcmd están protegidas de manera predeterminada. Para obtener más información sobre el cifrado de conexión, consulte Utilidad de sqlcmd para Windows y Conexión con sqlcmd para Linux y macOS. Si la conexión no se realiza correctamente, puede agregar la opción
-No
a sqlcmd para especificar que el cifrado es opcional, no obligatorio.Puede omitir la contraseña en la línea de comandos para que se le solicite escribirla.
Si más adelante decide conectarse de forma remota, especifique el nombre de la máquina o la dirección IP del parámetro
-S
y asegúrese de que el puerto 1433 esté abierto en el firewall.Si se realiza correctamente, debe ver un símbolo de sistema de sqlcmd:
1>
.Si recibe un error de conexión, intente primero diagnosticar el problema a partir del mensaje de error. Luego revise las recomendaciones para solucionar problemas de conexión.
Creación y consulta de datos
Las secciones siguientes le guían en el uso de sqlcmd para crear una base de datos, agregar datos y ejecutar una consulta simple.
Para obtener más información sobre cómo escribir consultas e instrucciones Transact-SQL, vea Tutorial: Escribir instrucciones Transact-SQL.
Creación de una base de datos
En los pasos siguientes se crea una base de datos denominada TestDB
.
En el símbolo del sistema de sqlcmd, pegue el comando Transact-SQL siguiente para crear una base de datos de prueba:
CREATE DATABASE TestDB;
En la línea siguiente, escriba una consulta para devolver el nombre de todas las bases de datos del servidor:
SELECT Name FROM sys.databases;
Los dos comandos anteriores no se ejecutan de inmediato. Debe escribir
GO
en una línea nueva para ejecutar los comandos anteriores:GO
Insertar datos
Luego cree una tabla, dbo.Inventory
, e inserte dos filas nuevas.
En el símbolo del sistema de sqlcmd, cambie el contexto a la nueva base de datos
TestDB
:USE TestDB;
Cree una tabla llamada
dbo.Inventory
:CREATE TABLE dbo.Inventory ( id INT, name NVARCHAR (50), quantity INT, PRIMARY KEY (id) );
Inserte datos en la nueva tabla:
INSERT INTO dbo.Inventory VALUES (1, 'banana', 150); INSERT INTO dbo.Inventory VALUES (2, 'orange', 154);
Escriba
GO
para ejecutar los comandos anteriores:GO
Selección de datos
Ahora ejecute una consulta para devolver datos desde la tabla dbo.Inventory
.
En el símbolo del sistema sqlcmd, escriba una consulta que devuelva filas desde la tabla
dbo.Inventory
donde la cantidad sea mayor que 152:SELECT * FROM dbo.Inventory WHERE quantity > 152;
Ejecute el comando:
GO
Salida del símbolo del sistema de sqlcmd
Para finalizar la sesión de sqlcmd, escriba QUIT
:
QUIT
Mejores prácticas de rendimiento
Después de instalar SQL Server en Linux, revise los procedimientos recomendados para configurar Linux y SQL Server con el fin de mejorar el rendimiento de los escenarios de producción. Para obtener más información, consulte Procedimientos recomendados e instrucciones de configuración de SQL Server en Linux.
Herramientas de datos multiplataforma
Además de sqlcmd, puede usar las siguientes herramientas multiplataforma para administrar SQL Server:
Herramienta | Descripción |
---|---|
Azure Data Studio | Una utilidad de administración de bases de datos GUI multiplataforma. |
Visual Studio Code | Un editor de código GUI multiplataforma que ejecuta instrucciones Transact-SQL con la extensión mssql. |
PowerShell Core | Una herramienta de configuración y automatización multiplataforma basada en cmdlets. |
mssql-cli | Una interfaz de línea de comandos multiplataforma para ejecutar comandos Transact-SQL. |
Conexión desde Windows
Las herramientas de SQL Server en Windows se conectan a instancias de SQL Server en Linux del mismo modo en que se conectarían a cualquier instancia remota de SQL Server.
Si tiene una máquina Windows que se puede conectar a la máquina Linux, pruebe con los mismos pasos de este tema desde un símbolo del sistema Windows mediante la ejecución de sqlcmd. Debe usar el nombre o la dirección IP de la máquina Linux de destino en lugar de localhost
y asegurarse de que el puerto TCP 1433 esté abierto en la máquina con SQL Server. Si tiene problemas para conectarse desde Windows, consulte las recomendaciones para solucionar problemas de conexión.
Para las otras herramientas que se ejecutan en Windows pero se conectan a SQL Server en Linux, consulte:
Otros escenarios de implementación
Para otros escenarios de instalación, vea los siguientes recursos:
- Actualización: Obtenga información sobre cómo actualizar una instalación existente de SQL Server en Linux
- Uninstall. Desinstalación de SQL Server en Linux
- Instalación desatendida: Obtenga información sobre cómo crear un script para la instalación sin pedir confirmación
- Instalación sin conexión: Obtenga información sobre cómo descargar manualmente los paquetes de instalación sin conexión
Para obtener respuesta a las preguntas más frecuentes, vea Preguntas más frecuentes sobre SQL Server en Linux.
Contenido relacionado
Contribuya a la documentación de SQL
¿Sabía que puede editar el contenido de SQL usted mismo? Si lo hace, no solo contribuirá a mejorar la documentación, sino que también se le reconocerá como colaborador de la página.
Para obtener más información, consulte Editar documentación de Microsoft Learn.