我在https://www.youtube.com/watch?v=BVNWRYPv78o之后创建了以下Docker镜像:
docker pull microsoft/mssql-server-linux
docker run -d --name sql_server_name -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=YourPassword123' -p 1433:1433 microsoft/mssql-server-linux
现在,我想尝试从本地Python脚本访问服务器。
正在https://stackoverflow.com/a/58088919/6131111
我做:
brew install unixodbc
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install msodbcsql17 mssql-tools
我的
/usr/local/etc/odbcinst.ini
文件如下所示:[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.17.dylib
UsageCount=1
要知道我的服务器,我知道:
$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sql_server_name
172.17.0.2
在python脚本中,我将连接字符串创建为:
connection_string = 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=172.17.0.2;DATABASE=WideWorldImportersDW;UID=sa;PWD=YourPassword123'
我以前已经将WideWorldImportersDW导入到数据库中,如下所示:
但我得到:
pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
最佳答案
我使用本地IP地址作为服务器来解决它:
connection_string = 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=192.168.1.47,1433;DATABASE=WideWorldImportersDW;UID=sa;PWD=YourPassword123'
关于python - 尝试从外部Python连接到Docker中的SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62114670/