无法在 Vagrant 配置脚本中使用 SqlCmd 连接到数据库

Unable to connect to database using SqlCmd in a Vagrant provision script

提问人:fhevol 提问时间:8/3/2023 最后编辑:Dale Kfhevol 更新时间:8/7/2023 访问量:45

问:

我正在使用 Vagrant 来创造一个可重复的工作环境。在我的流浪档案中,我有以下内容:

config.vm.provision :shell, path: "./dependencies.ps1"

config.vm.provision :shell, reboot: true

config.vm.provision :shell, path: "./sql.ps1"

dependencies.ps1 运行以下命令:

choco install sql-server-express -o -ia "'/IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /INSTANCEID=MSSQLSERVER /INSTANCENAME=MSSQLSERVER /UPDATEENABLED=FALSE'" -y

现阶段的sql.ps1具有以下内容(只是为了测试我是否可以连接):

SqlCmd -E -S LOCALDEV -Q "SELECT name FROM master.sys.databases"

结果是:

Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。找不到或无法访问服务器

在来宾上安装 SSMS 后,它使用服务器名称 LocalDev 进行连接,不会出现任何问题。同样,在我登录时运行 sql.ps1 脚本也有效。这是有道理的,SQL Server 实例设置为使用 Windows 身份验证,并且作为登录用户,我具有适当的权限。但是,这对我的流浪者文件没有帮助,它需要配置开箱即用工作所需的一切(没有双关语)。

我尝试了各种可能的服务器名称组合,包括 localhost、localhost、1433、LocalDev\MSSQLSERVER、LocalDev\MSSQLSERVER、1433 等,但无济于事。

任何建议都非常感谢。

SQL-Server PowerShell 流浪者 sqlcmd

评论

0赞 jdweng 8/3/2023
请尝试以下操作:learn.microsoft.com/en-us/powershell/module/sqlserver/...

答:

0赞 fhevol 8/7/2023 #1

在SQL服务器的脚本安装之后,我有:

config.vm.provision :shell, reboot: true

在我的 VagrantFile 中。上述问题的解决方案是在重新启动后短暂休眠,然后再尝试连接到 SQL Server。WEP公司

Start-Sleep -Seconds 90
Invoke-Sqlcmd -ServerInstance "LOCALHOST\MSSQLSERVER,1433" -Query "RESTORE DATABASE...

该脚本在重新启动后立即运行,此时 SQL Server 不可用。