Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Configurando um banco de dados local do SQL Server


Visão geral


Neste guia, falaremos sobre como instalar e configurar uma instância do SQL Server e o sqlcmd cliente de linha de comando. Veremos como instalar e configurar esses componentes em seu computador para acesso local.

Este guia cobrirá as seguintes plataformas:
  • Configurando o SQL Server no Windows
  • Configurando o SQL Server no macOS (com Docker)
  • Configurando o SQL Server no Linux
    • Ubuntu
    • CentOS e Red Hat
    • Com Docker

Navegue até as seções que correspondem às plataformas com as quais você trabalhará.


Configurando o SQL Server no Windows


A Microsoft fornece instaladores nativos do Windows para SQL Server em seu site e oferece várias versões do SQL Server adequadas para diferentes propósitos. Para os propósitos deste guia, faremos o download e instalaremos a edição gratuita do desenvolvedor. Você pode atualizar facilmente para uma versão paga da edição Developer se quiser usá-la para produção.

Para começar, visite a página da Microsoft para SQL Server. Encontre a seção relacionada à edição Developer e clique em Fazer download agora :



Quando o download estiver concluído, clique duas vezes no arquivo para executar o instalador (talvez seja necessário confirmar que deseja permitir que o programa faça alterações em seu computador).

Na tela inicial do instalador, você será solicitado a escolher o tipo de instalação que deseja realizar:



Escolha Básico continuar com uma instalação convencional usando as opções mais comuns.

Em seguida, você será solicitado a concordar com os termos de licenciamento da Developer Edition:



Depois de ler a licença e concordar com os termos, clique em Aceitar continuar.

Em seguida, confirme ou altere o local de instalação:



Quando estiver pronto, clique em Instalar para iniciar o processo de instalação.

O instalador começará a baixar e instalar componentes para configurar o SQL Server em seu computador:



Quando a instalação estiver concluída, aparecerá uma tela com as propriedades da instalação atual:



Para se conectar à nova instância do SQL Server imediatamente, clique em Conectar agora no fundo.

Uma nova janela irá Cmd aparecerá e fará o login automaticamente na instância do SQL Server usando o sqlcmd cliente:



Conforme mostrado em um comentário na parte superior da janela, você pode se conectar ao SQL Server manualmente a qualquer momento com o sqlcmd cliente digitando:
sqlcmd -S <yourhostname> -E

Para sair da sessão SQL atual, digite:
EXIT


Configurando o SQL Server no macOS


Embora a Microsoft não forneça um instalador nativo para macOS, eles oferecem suporte à execução do SQL Server no macOS por meio do Docker. O contêiner principal do SQL Server Docker é construído usando um contêiner Linux, permitindo que qualquer host capaz de executar contêineres Docker execute o servidor de banco de dados.

Você precisará de pelo menos 2 GB de memória (provavelmente pelo menos um pouco mais) para executar a imagem com êxito, no entanto, o próprio Docker requer pelo menos 4 GB de memória.

Para começar, certifique-se de ter o Docker em seu sistema. O Docker Desktop para Mac inclui o Docker Engine e outros aplicativos relacionados. Se você ainda não tiver o Docker instalado, siga as instruções incluídas no link acima.

Depois de ter o Docker instalado e funcionando, você pode extrair a imagem do SQL Server Docker do Microsoft Container Registry digitando:
docker pull mcr.microsoft.com/mssql/server:2019-latest

Isso fará o download de todas as camadas de imagem necessárias para o seu sistema local, permitindo uma inicialização mais rápida.

Quando estiver pronto para iniciar o contêiner, digite o comando a seguir.

Lembre-se de substituir <password> com o valor da sua senha pretendida e escolha um valor que esteja de acordo com a política de senha da imagem. No momento da redação deste artigo, a política é definida como:"A senha deve ter pelo menos 8 caracteres e conter caracteres de três dos quatro conjuntos a seguir:letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos.":
docker run --env "ACCEPT_EULA=Y" --env "SA_PASSWORD=<password>" --publish 1433:1433 --name mssql --hostname mssql --detach mcr.microsoft.com/mssql/server:2019-latest

O contêiner do SQL Server será iniciado em segundo plano. A sequência de caracteres exibida é o ID do novo contêiner.

Você pode verificar se o contêiner está funcionando digitando:
docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS                      PORTS                    NAMESffa9ef357b5c   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   2 minutes ago    Up 2 minutes                0.0.0.0:1433->1433/tcp   mssqlae00765e36fb   hello-world                                  "/hello"                 24 minutes ago   Exited (0) 24 minutes ago                            dreamy_swanson

Você deve ver o mssql recipiente entre a lista. Se o contêiner não estiver em execução ou você tiver problemas, tente visualizar seus logs para ver se há alguma mensagem útil:
docker logs mssql

O contêiner do SQL Server não apenas possui o servidor de banco de dados instalado, mas também algumas das ferramentas comuns disponíveis, incluindo o sqlcmd cliente de linha de comando. Para usar este cliente para se conectar à instância do banco de dados, você pode usar docker exec para acessar o comando e autenticar no banco de dados:
docker exec --interactive --tty mssql /opt/mssql-tools/bin/sqlcmd -U SA -S 127.0.0.1 -P "<password>"

Você será autenticado no SQL Server dentro do contêiner e colocado em um shell SQL. Você pode verificar se tudo está funcionando digitando:
SELECT @@VERSION;GO
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)    Jan 25 2021 20:16:12    Copyright (C) 2019 Microsoft Corporation    Developer Edition (64-bit) on Linux (Ubuntu 18.04.5 LTS) <X64>  (1 rows affected)

Para sair da sessão SQL e voltar ao seu shell normal, digite:
EXIT

Para encerrar o contêiner do SQL Server quando terminar, você pode interrompê-lo digitando:
docker stop mssql

Para remover a instância do contêiner (incluindo todos os dados dentro!), digite:
docker rm mssql

Para persistir os dados em seu contêiner do SQL Server, você pode usar uma das técnicas descritas na documentação da Microsoft ou dar uma olhada na própria documentação do Docker sobre como usar volumes de dados com contêineres.


Configurando o SQL Server no Linux


Os métodos de instalação diferem dependendo da distribuição Linux que você está usando. Siga a seção abaixo que corresponde à sua distribuição Linux. Também há instruções para usar o Docker se você preferir essa configuração ou quiser usar uma distribuição não listada.
  • Ubuntu
  • CentOS e Red Hat
  • Com Docker

Ubuntu


A maneira mais fácil de instalar o SQL Server no Ubuntu 20.04 é instalar a partir dos repositórios dedicados fornecidos pela Microsoft. Sua máquina deve ter pelo menos 2 GB de memória para instalar e executar com êxito o software necessário.

Para começar, adicione uma nova definição de repositório ao seu sistema digitando:
sudo add-apt-repository "$(wget --quiet -O - https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"

Você também precisa adicionar um repositório separado para obter acesso ao sqlcmd binário e outras ferramentas:
sudo add-apt-repository "$(wget --quiet -O - https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"

Em seguida, adicione a chave de assinatura do pacote da Microsoft a apt para que ele confie nos pacotes no novo repositório:
wget --quiet -O - https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

Com o repositório configurado, você pode instalar o SQL Server e o sqlcmd cliente de linha de comando digitando:
sudo apt install mssql-server mssql-tools unixodbc-dev

Quando a instalação estiver concluída, você precisará configurar sua nova instância de banco de dados. Para fazer isso, execute a mssql-conf setup incluída script para definir algumas das propriedades básicas do seu novo sistema:
sudo /opt/mssql/bin/mssql-conf setup

Você receberá uma série de perguntas para configurar o servidor de banco de dados.

Primeiro, ele perguntará qual edição do servidor SQL você deseja usar:
Choose an edition of SQL Server:  1) Evaluation (free, no production use rights, 180-day limit)  2) Developer (free, no production use rights)  3) Express (free)  4) Web (PAID)  5) Standard (PAID)  6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum  8) I bought a license through a retail sales channel and have a product key to enter.Details about editions can be found athttps://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409Use of PAID editions of this software requires separate licensing through aMicrosoft Volume Licensing program.By choosing a PAID edition, you are verifying that you have the appropriatenumber of licenses in place to install and run this software.Enter your edition(1-8):

Se você tiver uma licença paga, poderá escolher a versão apropriada. Se você estiver usando o servidor em um ambiente de não produção, é seguro escolher a edição do desenvolvedor.

Em seguida, você terá que aceitar os termos de licença novamente:
The license terms for this product can be found in/usr/share/doc/mssql-server or downloaded from:https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409The privacy statement can be viewed at:https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409Do you accept the license terms? [Yes/No]:

Por fim, você terá que definir e confirmar uma senha para a conta de administrador do sistema SQL Server (chamada de conta SA em muitos lugares):
Enter the SQL Server system administrator password:Confirm the SQL Server system administrator password:

Para usar o sqlcmd cliente para se conectar à sua instância do SQL Server, é mais fácil adicionar o mssql-tools diretório binário para o seu PATH . Para configurar isso, digite:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrcecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

Depois, re-source um dos dois arquivos acima para avaliar o novo PATH para sua sessão atual:
source ~/.bashrc

Agora você pode se conectar à sua instância de banco de dados digitando:
sqlcmd -U SA -S 127.0.0.1

Será solicitada a senha que você configurou anteriormente. Após a autenticação bem-sucedida, você será colocado em um shell SQL. A partir daqui, você pode verificar se tudo está funcionando imprimindo a versão do servidor:
SELECT @@VERSIONGO
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)    Jan 25 2021 20:16:12    Copyright (C) 2019 Microsoft Corporation    Developer Edition (64-bit) on Linux (Ubuntu 20.04.2 LTS) <X64>  (1 rows affected)

Para sair do shell SQL e voltar à linha de comando, você pode digitar:
EXIT


CentOS e Red Hat


A maneira mais fácil de instalar o SQL Server no CentOS ou Red Hat é usar os repositórios fornecidos pela Microsoft. Os hosts Linux devem ter pelo menos 2 GB de memória para instalar e executar o SQL Server.

Antes de instalar o SQL Server, você precisa instalar e configurar suas dependências. Precisamos do Python 2 e do OpenSSL 10 para continuar:
sudo yum install python2 compat-openssl10

Após a instalação do Python 2, configure o sistema para usá-lo como a instância padrão do Python:
sudo alternatives --config python

Na lista a seguir, selecione o número associado à instalação do Python 2. No exemplo abaixo, esta será a opção 2:
 There are 2 programs which provide 'python'.    Selection    Command ----------------------------------------------- *+ 1           /usr/libexec/no-python    2           /usr/bin/python2  Enter to keep the current selection[+], or type selection number: 2

Com as dependências em vigor, agora você pode configurar o repositório SQL Server YUM:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/$(rpm --eval %{rhel})/mssql-server-2019.repo

Depois, você precisa configurar um repositório adicional para ter acesso ao sqlcmd e outras ferramentas:
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/$(rpm --eval %{rhel})/prod.repo

Depois que os repositórios estiverem configurados, instale o SQL Server digitando:
sudo yum install mssql-server mssql-tools unixODBC-devel

Quando a instalação estiver concluída, você precisará configurar sua nova instância de banco de dados. Para fazer isso, execute a mssql-conf setup incluída script para definir algumas das propriedades básicas do seu novo sistema:
sudo /opt/mssql/bin/mssql-conf setup

Você receberá uma série de perguntas para configurar o servidor de banco de dados.

Primeiro, ele perguntará qual edição do servidor SQL você deseja usar:
Choose an edition of SQL Server:  1) Evaluation (free, no production use rights, 180-day limit)  2) Developer (free, no production use rights)  3) Express (free)  4) Web (PAID)  5) Standard (PAID)  6) Enterprise (PAID) - CPU Core utilization restricted to 20 physical/40 hyperthreaded  7) Enterprise Core (PAID) - CPU Core utilization up to Operating System Maximum  8) I bought a license through a retail sales channel and have a product key to enter.Details about editions can be found athttps://go.microsoft.com/fwlink/?LinkId=2109348&clcid=0x409Use of PAID editions of this software requires separate licensing through aMicrosoft Volume Licensing program.By choosing a PAID edition, you are verifying that you have the appropriatenumber of licenses in place to install and run this software.Enter your edition(1-8):

Se você tiver uma licença paga, poderá escolher a versão apropriada. Se você estiver usando o servidor em um ambiente de não produção, é seguro escolher a edição do desenvolvedor.

Em seguida, você terá que aceitar os termos de licença novamente:
The license terms for this product can be found in/usr/share/doc/mssql-server or downloaded from:https://go.microsoft.com/fwlink/?LinkId=2104294&clcid=0x409The privacy statement can be viewed at:https://go.microsoft.com/fwlink/?LinkId=853010&clcid=0x409Do you accept the license terms? [Yes/No]:

Por fim, você terá que definir e confirmar uma senha para a conta de administrador do sistema SQL Server (chamada de conta SA em muitos lugares):
Enter the SQL Server system administrator password:Confirm the SQL Server system administrator password:

Para usar o sqlcmd cliente para se conectar à sua instância do SQL Server, é mais fácil adicionar o mssql-tools diretório binário para o seu PATH . Para configurar isso, digite:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrcecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile

Depois, re-source um dos dois arquivos acima para avaliar o novo PATH para sua sessão atual:
source ~/.bashrc

Agora você pode se conectar à sua instância de banco de dados digitando:
sqlcmd -U SA -S 127.0.0.1

Será solicitada a senha que você configurou anteriormente. Após a autenticação bem-sucedida, você será colocado em um shell SQL. A partir daqui, você pode verificar se tudo está funcionando imprimindo a versão do servidor:
SELECT @@VERSIONGO
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)    Jan 25 2021 20:16:12    Copyright (C) 2019 Microsoft Corporation    Developer Edition (64-bit) on Linux (CentOS Linux 8) <X64>  (1 rows affected)

Para sair do shell SQL e voltar à linha de comando, você pode digitar:
EXIT


Com Docker


Se você estiver usando uma distribuição Linux para a qual a Microsoft não fornece pacotes ou se simplesmente preferir, outra opção é executar o SQL Server com o Docker. Você precisará de pelo menos 2 GB de memória (provavelmente pelo menos um pouco mais) para executar a imagem com êxito.

Para começar, certifique-se de ter o Docker Engine em seu sistema. Você pode encontrar instruções detalhadas para várias plataformas na documentação do Docker Engine.

Depois de ter o Docker instalado e funcionando, você pode extrair a imagem do SQL Server Docker do Microsoft Container Registry digitando:
sudo docker pull mcr.microsoft.com/mssql/server:2019-latest

Isso fará o download de todas as camadas de imagem necessárias para o seu sistema local, permitindo uma inicialização mais rápida.

Quando estiver pronto para iniciar o contêiner, digite o comando a seguir.

Lembre-se de substituir <password> com o valor da sua senha pretendida e escolha um valor que esteja de acordo com a política de senha da imagem. No momento da redação deste artigo, a política é definida como:"A senha deve ter pelo menos 8 caracteres e conter caracteres de três dos quatro conjuntos a seguir:letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos.":
sudo docker run --env "ACCEPT_EULA=Y" --env "SA_PASSWORD=<password>" --publish 1433:1433 --name mssql --hostname mssql --detach mcr.microsoft.com/mssql/server:2019-latest

O contêiner do SQL Server será iniciado em segundo plano. A sequência de caracteres exibida é o ID do novo contêiner.

Você pode verificar se o contêiner está funcionando digitando:
sudo docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS                      PORTS                    NAMESffa9ef357b5c   mcr.microsoft.com/mssql/server:2019-latest   "/opt/mssql/bin/perm…"   2 minutes ago    Up 2 minutes                0.0.0.0:1433->1433/tcp   mssqlae00765e36fb   hello-world                                  "/hello"                 24 minutes ago   Exited (0) 24 minutes ago                            dreamy_swanson

Você deve ver o mssql recipiente entre a lista. Se o contêiner não estiver em execução ou você tiver problemas, tente visualizar seus logs para ver se há alguma mensagem útil:
sudo docker logs mssql

O contêiner do SQL Server não apenas possui o servidor de banco de dados instalado, mas também algumas das ferramentas comuns disponíveis, incluindo o sqlcmd cliente de linha de comando. Para usar este cliente para se conectar à instância do banco de dados, você pode usar docker exec para acessar o comando e autenticar no banco de dados:
sudo docker exec --interactive --tty mssql /opt/mssql-tools/bin/sqlcmd -U SA -S 127.0.0.1 -P "<password>"

Você será autenticado no SQL Server dentro do contêiner e colocado em um shell SQL. Você pode verificar se tudo está funcionando digitando:
SELECT @@VERSION;GO
 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Microsoft SQL Server 2019 (RTM-CU9) (KB5000642) - 15.0.4102.2 (X64)    Jan 25 2021 20:16:12    Copyright (C) 2019 Microsoft Corporation    Developer Edition (64-bit) on Linux (Ubuntu 18.04.5 LTS) <X64>  (1 rows affected)

Para sair da sessão SQL e voltar ao seu shell normal, digite:
EXIT

Para encerrar o contêiner do SQL Server quando terminar, você pode interrompê-lo digitando:
sudo docker stop mssql

Para remover a instância do contêiner (incluindo todos os dados dentro!), digite:
sudo docker rm mssql

Para persistir os dados em seu contêiner do SQL Server, você pode usar uma das técnicas descritas na documentação da Microsoft ou dar uma olhada na própria documentação do Docker sobre como usar volumes de dados com contêineres.