Risolvere i problemi relativi a SQL Server in LinuxTroubleshoot SQL Server on Linux

Questo documento viene descritto come risolvere i problemi relativi a Microsoft SQL Server in esecuzione in Linux o in un contenitore Docker.This document describes how to troubleshoot Microsoft SQL Server running on Linux or in a Docker container. Quando la risoluzione dei problemi di SQL Server in Linux, rendere tenere presente le limitazioni di questa versione di anteprima privata.When troubleshooting SQL Server on Linux, please make remember the limitations of this private preview release. È possibile trovare un elenco di tali nel note sulla versione.You can find a list of these in the Release Notes.

Risoluzione dei problemi di connessione Troubleshoot connection failures

Se si verificano problemi di connessione a SQL Server Linux, esistono alcuni elementi da controllare.If you are having difficulty connecting to your Linux SQL Server, there are a few things to check.

  • Verificare che il nome del server o l'indirizzo IP sia raggiungibile dal computer client.Verify that the server name or IP address is reachable from your client machine.

    Suggerimento

    Per trovare l'indirizzo IP del computer Ubuntu, è possibile eseguire il comando ifconfig come nell'esempio seguente:To find the IP address of your Ubuntu machine, you can run the ifconfig command as in the following example:

    sudo ifconfig eth0 | grep 'inet addr'
    

    Per Red Hat, è possibile utilizzare l'indirizzo ip come nell'esempio seguente:For Red Hat, you can use the ip addr as in the following example:

    sudo ip addr show eth0 | grep "inet"
    

    Un'eccezione a questa tecnica si riferisce alle macchine virtuali di Azure.One exception to this technique relates to Azure VMs. Per le macchine virtuali di Azure, trovare l'indirizzo IP pubblico per la macchina virtuale nel portale di Azure.For Azure VMs, find the public IP for the VM in the Azure portal.

  • Se applicabile, controllare che sia aperta la porta di SQL Server (valore predefinito 1433) nel firewall.If applicable, check that you have opened the SQL Server port (default 1433) on the firewall.

  • Per le macchine virtuali di Azure, verificare di avere un regola gruppo di sicurezza di rete per la porta di SQL Server predefinita.For Azure VMs, check that you have a network security group rule for the default SQL Server port.

  • Verificare che il nome utente e la password non contenga errori di digitazione o spazi aggiuntivi o maiuscole e minuscole non corretta.Verify that the user name and password do not contain any typos or extra spaces or incorrect casing.

  • Tenta di impostare in modo esplicito il numero di porta e protocollo con il nome del server simile al seguente: tcp:servername, 1433.Try to explicitly set the protocol and port number with the server name like the following: tcp:servername,1433.

  • Problemi di connettività di rete possono causare errori di connessione e timeout.Network connectivity issues can also cause connection errors and timeouts. Dopo aver verificato le informazioni di connessione e la connettività di rete, provare a riconnettersi.After verifying your connection information and network connectivity, try the connection again.

Gestire il servizio SQL ServerManage the SQL Server service

Nelle sezioni seguenti viene illustrato come avviare, arrestare, riavviare e controllare lo stato del servizio SQL Server.The following sections show how to start, stop, restart, and check the status of the SQL Server service.

Gestire il servizio mssql server Red Hat Enterprise Linux (RHEL) e UbuntuManage the mssql-server service in Red Hat Enterprise Linux (RHEL) and Ubuntu

Verificare lo stato dello stato del servizio SQL Server con il seguente comando:Check the status of the status of the SQL Server service using this command:

sudo systemctl status mssql-server

È possibile arrestare, avviare o riavviare il servizio SQL Server in base alle esigenze utilizzando i comandi seguenti:You can stop, start, or restart the SQL Server service as needed using the following commands:

sudo systemctl stop mssql-server
sudo systemctl start mssql-server
sudo systemctl restart mssql-server

Gestire l'esecuzione del contenitore Docker mssqlManage the execution of the mssql Docker container

È possibile ottenere l'ID di contenitore e lo stato della versione più recente contenitore Docker di SQL Server creato eseguendo il comando seguente (ID è sotto la colonna "ID contenitore"):You can get the status and container ID of the latest created SQL Server Docker container by running the following command (The ID will be under the “CONTAINER ID” column):

sudo docker ps -l

È possibile arrestare o riavviare il servizio SQL Server in base alle esigenze utilizzando i comandi seguenti:You can stop or restart the SQL Server service as needed using the following commands:

sudo docker stop <container ID>
sudo docker restart <container ID>
Suggerimento

Per altri suggerimenti sulla risoluzione dei problemi per Docker, vedere contenitori di risoluzione dei problemi di SQL Server Docker.For more troubleshooting tips for Docker, see Troubleshooting SQL Server Docker containers.

Accedere ai file di logAccess the log files

I log del motore di SQL Server per il file /var/opt/mssql/log/errorlog nelle installazioni di Linux e Docker.The SQL Server engine logs to the /var/opt/mssql/log/errorlog file in both the Linux and Docker installations. È necessario essere in modalità 'utente avanzato' per passare a questa directory.You need to be in ‘superuser’ mode to browse this directory.

Il programma di installazione Registra qui: / var opt/mssql/installazione-< timestamp che rappresenta l'ora di installazione > è possibile esplorare i file di log degli errori con qualsiasi strumento compatibile UTF-16 come 'vim' o 'cat' come segue:The installer logs here: /var/opt/mssql/setup-< time stamp representing time of install> You can browse the errorlog files with any UTF-16 compatible tool like ‘vim’ or ‘cat’ like this:

sudo cat errorlog

Se si preferisce, è anche possibile convertire i file UTF-8 per leggerli con 'altro' o 'meno' con il comando seguente:If you prefer, you can also convert the files to UTF-8 to read them with ‘more’ or ‘less’ with the following command:

sudo iconv –f UTF-16LE –t UTF-8 <errorlog> -o <output errorlog file>

Eventi estesiExtended events

È possibile eseguire query di eventi estesi tramite un comando SQL.Extended events can be queried via a SQL command. Sono disponibili ulteriori informazioni sugli eventi estesi qui:More information about extended events can be found here:

Dump di arresto anomaloCrash dumps

Cercare dump nella directory dei log in Linux.Look for dumps in the log directory in Linux. Verificare nella directory /var/opt/mssql/log Linux Core dump (. tar.gz2 estensione) o SQL minidump (con estensione con estensione mdmp)Check under the /var/opt/mssql/log directory for Linux Core dumps (.tar.gz2 extension) or SQL minidumps (.mdmp extension)

Per i dump di CoreFor Core dumps

sudo ls /var/opt/mssql/log | grep .tar.gz2 

Per i dump SQLFor SQL dumps

sudo ls /var/opt/mssql/log | grep .mdmp 

Problemi comuniCommon issues

  1. È possibile non connettersi all'istanza di SQL Server remoto.You can not connect to your remote SQL Server instance.

    Vedere la sezione sulla risoluzione dei problemi dell'argomento, Connetti a SQL Server in Linux.See the troubleshooting section of the topic, Connect to SQL Server on Linux.

  2. Errore: Nome host deve essere 15 caratteri o meno.ERROR: Hostname must be 15 characters or less.

    Si tratta di un problema noto che si verifica ogni volta che il nome del computer che sta tentando di installare il pacchetto Debian di SQL Server è più lungo di 15 caratteri.This is a known-issue that happens whenever the name of the machine that is trying to install the SQL Server Debian package is longer than 15 characters. Non esistono attualmente alcuna soluzione alternativa diverso da modificare il nome del computer.There are currently no workarounds other than changing the name of the machine. Un modo per ottenere questo risultato è modificando il file di nome host e il computer verrà riavviato.One way to achieve this is by editing the hostname file and rebooting the machine. Nell'esempio Guida sito Web si illustra in dettaglio.The following website guide explains this in detail.

  3. Reimpostazione della password di amministrazione (SA) di sistema.Resetting the system administration (SA) password.

    Se si hanno dimenticato la password di amministratore (SA) di sistema o ripristinare le impostazioni per qualche altro motivo è necessario seguire questi passaggi.If you have forgotten the system administrator (SA) password or need to reset it for some other reason please follow these steps.

    Nota

    La procedura seguente verrà interrotta temporaneamente il servizio SQL Server.Following these steps will stop the SQL Server service temporarily.

    Accedere al terminale di host, eseguire i comandi seguenti e seguire le istruzioni per reimpostare la password dell'amministratore di sistema:Log into the host terminal, run the following commands and follow the prompts to reset the SA password:

    sudo systemctl stop mssql-server
    sudo /opt/mssql/bin/mssql-conf setup
    
  4. Utilizzo di caratteri speciali nella password.Using special characters in password.

    Se si usano alcuni caratteri della password di account di accesso di SQL Server occorre relativa sequenza di escape quando vengono utilizzati i servizi terminal di Linux.If you use some characters in the SQL Server login password you may need to escape them when using them in the Linux terminal. È necessario eseguire l'escape di $ in qualsiasi momento utilizzando il carattere barra rovesciata in uso in uno script shell dei comandi/terminal:You will need to escape the $ anytime using the backslash character you are using it in a terminal command/shell script:

    Non funziona:Does not work:

    sudo sqlcmd -S myserver -U sa -P Test$$
    

    Funzionamento:Works:

    sqlcmd -S myserver -U sa -P Test\$\$
    

    Risorse: caratteri speciali EscapingResources: Special characters Escaping

SupportoSupport

Il supporto è disponibile tramite la community e monitorato dal team di progettazione.Support is available through the community and monitored by the engineering team. Per domande specifiche, utilizzare le risorse seguenti:For specific questions, use the following resources: