我正在使用 Vagrant 来创建一个可重复的工作环境。在我的 vagrantfile 中,我有以下内容:
config.vm.provision :shell, path: "./dependencies.ps1"
config.vm.provision :shell, reboot: true
config.vm.provision :shell, path: "./sql.ps1"
dependency.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: Error: Microsoft ODBC Driver 17 for SQL Server : A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible
当 SSMS 安装在来宾上时,它可以使用服务器名称 LocalDev 进行连接,不会出现任何问题。同样,在登录时运行 sql.ps1 脚本也可以。这是有道理的,SQL Server 实例设置为使用 Windows 身份验证,并且作为登录用户我拥有适当的权限。然而,这对我的 vagrantfile 没有帮助,它需要配置开箱即用的工作所需的一切(没有双关语)。
我尝试了各种可能的服务器名称组合,包括 localhost、localhost、1433、LocalDev\MSSQLSERVER、LocalDev\MSSQLSERVER、1433 等,但无济于事。
非常感谢任何建议。