gpt4 book ai didi

powershell - docker run 和 sqlcmd 一起报错

转载 作者:行者123 更新时间:2023-12-02 18:21:17 44 4
gpt4 key购买 nike

编写一个脚本以在 docker 容器中快速添加一个 SQL Server Linux 实例,然后立即连接到它进行测试。似乎 run 命令和 sqlcmd 不能在同一个脚本中运行。

假设您在 .ps1 文件中运行它:

  #create the container with sql server
docker run `
-e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Awesome1!" `
-p 11433:1433 `
--name shuriken --hostname shuriken --restart=always `
-d microsoft/mssql-server-linux:2017-latest;

#try to connect to it
$ConnectionString = "Server=localhost,11433;Database=master;User Id=sa; Password=Awesome1!";
$sql = 'SELECT @@SERVERNAME AS ServerName;';
Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $sql;

你得到一个错误:

Invoke-Sqlcmd : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)



但是如果在那之后你立即注释掉 docker run命令,它起作用了。连接到同一个 SQL Server 就好了:

shuriken



我试过 Invoke-SqlCmd , SqlCmd , 来自 SqlServer 模块的 cmdlet 并将它们放在我在这里调用的另一个文件中;他们都给出了同样的错误。

最佳答案

添加 Start-Sleep -s 4; docker run之间和 Invoke-SqlCmd作品。
看起来它只是需要一些喘息的空间。
4 秒是我在查询之前可以达到的最低时间。

关于powershell - docker run 和 sqlcmd 一起报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51986818/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com