我正在尝试在SQL Server群集上使用invoke-sqlcmd,但它无法执行并产生以下错误:
invoke-sqlcmd:发生了与网络相关或特定于实例的错误 同时建立与SQL Server的连接。服务器不是 发现或无法访问。验证实例名称是否正确 并且SQL Server配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开 连接到SQL Server) C:\ RS-PKGS \ SitecoreDeployScripts \ SitecoreDatabasesDeploy.ps1:128 焦炭:1 + invoke-sqlcmd -InputFile $ inputFilePath + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [Invoke-Sqlcmd],SqlException + FullyQualifiedErrorId:SqlExectionError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand
我能够在未集群的开发SQL Box上成功执行我的脚本。以下是SQL调用的示例:
$scriptPath = "C:\"
$scriptName = "MyScript.sql"
$inputFilePath = "{0}\{1}" -f $scriptPath,$scriptName
invoke-sqlcmd -InputFile $inputFilePath
所以问题是这是一个群集问题还是一个不允许远程连接的安全问题?如何从PowerShell执行SQL脚本(如果我在SSMS中打开它们并按下执行,则执行正确)。
答案 0 :(得分:0)
然后,脚本只需要-ServerInstance的服务器实例名称开关,如下所示:
$scriptPath = "C:\"
$scriptName = "MyScript.sql"
$inputFilePath = "{0}\{1}" -f $scriptPath,$scriptName
invoke-sqlcmd -InputFile $inputFilePath -ServerInstance 'MyClusterName"
我通过运行以下查询来找到名称:
select @@servername
它在没有-ServerInstance开关的单个盒子上工作,因为它是本地化/单个