Connettersi ed eseguire query in SQL Edge di Azure
Importante
SQL Edge di Azure verrà ritirato il 30 settembre 2025. Per altre informazioni e per le opzioni di migrazione, vedere l'avviso di ritiro.
Nota
SQL Edge di Azure non supporta più la piattaforma ARM64.
In SQL Edge di Azure, dopo aver distribuito un contenitore, è possibile connettersi al Motore di database da una delle posizioni seguenti:
- Dall'interno del contenitore.
- Da un altro contenitore Docker in esecuzione nello stesso host
- Dal computer host
- Da qualsiasi altro computer client nella rete
Strumenti per la connessione a SQL Edge di Azure
È possibile connettersi a un'istanza dell'istanza di SQL Edge di Azure da uno di questi strumenti comuni:
- sqlcmd: gli strumenti client sqlcmd sono già inclusi nell'immagine del contenitore SQL Edge di Azure. Se ci si connette a un contenitore in esecuzione con una shell bash interattiva, è possibile eseguire gli strumenti in locale. Gli strumenti client SQL non sono disponibili nella piattaforma ARM64.
- SQL Server Management Studio
- Azure Data Studio
- Visual Studio Code
Per connettersi a un motore di database di SQL Edge di Azure da un computer della rete, è necessario quanto segue:
Indirizzo IP o nome di rete del computer host: si tratta del computer host in cui è in esecuzione il contenitore SQL Edge di Azure.
Mapping della porta host del contenitore SQL Edge di Azure: si tratta del mapping per il contenitore Docker a una porta nell'host. Il mapping all'interno del contenitore SQL Edge di Azure viene sempre eseguito alla porta 1433. Se si desidera, è possibile modificarlo. Per modificare il numero di porta, aggiornare Opzioni di creazione del contenitore per il modulo SQL Edge di Azure in Azure IoT Edge. Nell'esempio seguente viene eseguito il mapping della porta 1433 nel contenitore alla porta 1600 nell'host.
{ "PortBindings": { "1433/tcp": [ { "HostPort": "1600" } ] } }
Password SA per l'istanza di SQL Edge di Azure: si tratta del valore specificato per la variabile di ambiente
MSSQL_SA_PASSWORD
durante la distribuzione di SQL Edge di Azure.
Connettere al Motore di database dal contenitore
Gli strumenti da riga di comando di SQL Server sono inclusi nell'immagine del contenitore di SQL Edge di Azure. Se ci si connette al contenitore con un prompt dei comandi interattivo, è possibile eseguire gli strumenti localmente. Gli strumenti client SQL non sono disponibili nella piattaforma ARM64.
Usare il comando
docker exec -it
per avviare una shell Bash interattiva all'interno del contenitore in esecuzione. Nell'esempio seguentee69e056c702d
è l'ID del contenitore.docker exec -it e69e056c702d /bin/bash
Suggerimento
Non è sempre necessario specificare l'intero ID del contenitore. È sufficiente specificare un numero sufficiente di caratteri per identificarlo in modo univoco. In questo esempio potrebbe essere quindi sufficiente usare
e6
oe69
anziché l'ID completo.Una volta all'interno del contenitore, eseguire la connessione in locale con sqlcmd. sqlcmd non è incluso nel percorso per impostazione predefinita, quindi occorre specificare il percorso completo.
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<YourPassword>'
Dopo aver completato le operazioni con sqlcmd, digitare
exit
.Al termine delle operazioni con il prompt dei comandi interattivo, digitare
exit
. Dopo la chiusura della shell Bash interattiva, il contenitore continua l'esecuzione.
Connettersi a SQL Edge di Azure da un altro contenitore nello stesso host
Poiché due contenitori in esecuzione nello stesso host si trovano nella stessa rete Docker, è possibile accedervi facilmente usando il nome del contenitore e l'indirizzo della porta per il servizio. Ad esempio, se ci si connette all'istanza di SQL Edge di Azure da un altro modulo Python (contenitore) nello stesso host, è possibile usare una stringa di connessione simile alla seguente. (questo esempio presuppone che SQL Edge di Azure sia configurato per l'ascolto sulla porta predefinita).
import pyodbc
server = 'MySQLEdgeContainer' # Replace this with the actual name of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = '<password>' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)
Connettersi a SQL Edge di Azure da un altro computer della rete
È possibile connettersi all'istanza di SQL Edge di Azure da un altro computer in rete. A tale scopo, usare l'indirizzo IP dell'host Docker e la porta host a cui viene eseguito il mapping del contenitore SQL Edge di Azure. Ad esempio, se l'indirizzo IP dell'host Docker è 192.168.2.121
e il contenitore SQL Edge di Azure viene mappato alla porta host 1600, l'indirizzo del server per l'istanza di SQL Edge di Azure sarà 192.168.2.121,1600
. Lo script Python aggiornato è:
import pyodbc
server = '192.168.2.121,1600' # Replace this with the actual name or IP address of your SQL Edge Docker container
username = 'sa' # SQL Server username
password = '<password>' # Replace this with the actual SA password from your deployment
database = 'MyEdgeDatabase' # Replace this with the actual database name from your deployment. If you do not have a database created, you can use Master database.
db_connection_string = "Driver={ODBC Driver 17 for SQL Server};Server=" + server + ";Database=" + database + ";UID=" + username + ";PWD=" + password + ";"
conn = pyodbc.connect(db_connection_string, autocommit=True)
Per connettersi a un'istanza di SQL Edge di Azure usando SQL Server Management Studio in esecuzione in un computer Windows, vedere SQL Server Management Studio.
Per connettersi a un'istanza di SQL Edge di Azure usando Visual Studio Code in un computer Windows, macOS o Linux, vedere Visual Studio Code.
Per connettersi a un'istanza di SQL Edge di Azure usando Azure Data Studio in un computer Windows, macOS o Linux, vedere Azure Data Studio.