Di recente ho incontrato alcune persone che non sapevano che SQL Server 2017 funziona anche su Linux ma hanno davvero bisogno di sapere . Avevano un unico desktop Windows e un unico Windows Server che tenevano in giro per eseguire SQL Server. Erano stati a lungo un negozio Linux e ora erano completamente containerizzati... tranne per questa macchina sotto la scrivania di Anna. (Suppongo che The Cloud sia il prossimo... consiglio professionale:non avere server importanti sotto la tua scrivania). Puoi anche ottenere prima una licenza e poi decidere sulla piattaforma.
Puoi eseguire SQL Server su alcune versioni di Linux...
- Installa su Red Hat Enterprise Linux
- Installa su SUSE Linux Enterprise Server
- Installa su Ubuntu
o, ancora meglio, eseguilo su Docker...
- Esegui su Docker
Ovviamente ti consigliamo di eseguire la mappatura del volume appropriata per mantenere il tuo database su una memoria durevole. Sto scavando per poter avviare un SQL Server completo all'interno di un contenitore sul mio computer Windows senza installazione.
Ho Docker per Windows sul mio laptop e sto usando il repository "Docker Why" di Shayne Boyer per chiarire il punto. Guarda il suo esempio DockerCompose che include sia un front-end Web che un back-end che usa SQL Server su Linux.
version: '3.0'
services:
mssql:
image: microsoft/mssql-server-linux:latest
container_name: db
ports:
- 1433:1433
volumes:
- /var/opt/mssql
# we copy our scripts onto the container
- ./sql:/usr/src/app
# bash will be executed from that path, our scripts folder
working_dir: /usr/src/app
# run the entrypoint.sh that will import the data AND sqlserver
command: sh -c ' chmod +x ./start.sh; ./start.sh & /opt/mssql/bin/sqlservr;'
environment:
ACCEPT_EULA: 'Y'
SA_PASSWORD: P@$$w0rdP@$$w0rd
Nota il suo comando iniziale in cui sta eseguendo un popolamento iniziale del database con dati di esempio, quindi esegue lo stesso sqlservr. Il contenitore Docker di SQL Server su Linux include la riga di comando "sqlcmd" in modo da poter configurare il database, mantenerlo e così via con la stessa riga di comando utilizzata su Windows. Puoi anche configurare SQL Server da Variabili di ambiente in modo che sia facile da usare all'interno di Docker/Kubernetes. Ci vorranno solo pochi minuti per iniziare.
Esempio:
/opt/mssql-tools/bin/sqlcmd -S localhost -d Names -U SA -P $SA_PASSWORD -I -Q "ALTER TABLE Names ADD ID UniqueIdentifier DEFAULT newid() NOT NULL;"
Ho clonato il suo repository (e ho .NET Core 2.1) e ho eseguito un "docker-compose up" e boom, eseguendo un front-end sotto Alpine e back-end con SQL Server su Linux.
101→ C:\Users\scott> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e5b4dae93f6d namesweb "dotnet namesweb.dll" 38 minutes ago Up 38 minutes 0.0.0.0:57270->80/tcp, 0.0.0.0:44348->443/tcp src_namesweb_1
5ddffb76f9f9 microsoft/mssql-server-linux:latest "sh -c ' chmod +x ./…" 41 minutes ago Up 39 minutes 0.0.0.0:1433->1433/tcp mssql
Le righe di comando sono belle, ma SQL Server è noto per SQL Server Management Studio, una bella GUI per Windows. Hanno rilasciato SQL Server su Linux e quindi si aspettano che tutti utilizzino Windows per gestirlo? io dico no no! Dai un'occhiata a SQL Operations Studio multipiattaforma e open source, "uno strumento di gestione dei dati che consente di lavorare con SQL Server, Azure SQL DB e SQL DW da Windows, macOS e Linux". Puoi scaricare gratuitamente SQL Operations Studio qui.
SQL Ops Studio è davvero impressionante. Qui sto interrogando SQL Server su Linux in esecuzione nel mio contenitore Docker sul mio laptop Windows.
Mentre sto scavando e imparando fino a che punto è arrivato SQL Server multipiattaforma, ho anche verificato l'estensione mssql per Visual Studio Code che ti consente di sviluppare ed eseguire SQL su qualsiasi SQL Server. Anche l'estensione VS Code per SQL Server è open source!
Vai a controllare SQL Server in Docker su https://github.com/Microsoft/mssql-docker e prova l'esempio di Shayne su https://github.com/spboyer/docker-why
Sponsor: Scala il tuo Python per big data e big science con Intel® Distribution per Python. Velocità del codice quasi nativa. Utilizzare con NumPy, SciPy e scikit-learn. Ricevilo oggi!