Powershell无法连接到SQL Server

Powershell无法连接到SQL Server,powershell,Powershell,我正在尝试将一些基本数据发送到公司网站上托管的SQL Server。我的web开发人员在服务器端进行了检查,允许连接,但我一直从PowerShell获得以下响应: 使用“0”参数调用“Open”时发生异常: 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接) 我已经验证了所有凭证都是正确的。MySQL

我正在尝试将一些基本数据发送到公司网站上托管的SQL Server。我的web开发人员在服务器端进行了检查,允许连接,但我一直从PowerShell获得以下响应:

使用“0”参数调用“Open”时发生异常:
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开到SQL Server的连接)

我已经验证了所有凭证都是正确的。MySQL Workbench无问题登录到SQL server

这是我的连接码。出于明显的安全原因,编辑连接值

function upload_SQL () {
    $SQLServer = "server.com"
    $SQLDBName = "DB_Name"
    $uid ="User_Name"
    $pwd = "Pass"

    Write-Host "Attempting to connect to $SQLServer"
    $ConnectionString = "Server=$SQLServer; Database=$SQLDBName; Integrated Security=True; User ID=$uid; Password=$pwd;"
    $conn = New-Object System.Data.SqlClient.SqlConnection($ConnectionString)
    $conn.Open()
    $SqlQuery = $conn.CreateCommand()
    $SqlQuery.CommandText = "INSERT INTO total2_gariondata.Test () VALUES ('
            $DTinfo,
            $ClientCode,
            $CompCode,
            $CPUstat, 
            $MEMstat, 
            $DSKstat,
            $TimePeriods,
            $CritErr1,
            $WarnErr1,
            $SpaceUsed
        ');"
    $SqlQuery.ExecuteNonQuery()
    $conn.Close()
}

新建对象System.Data.SqlClient.SqlConnection
仅适用于MS SQL Server,与MySQL Server不兼容

将其更改为新对象MySql.Data.MySqlClient.MySqlConnection

要使其工作,您至少需要MySQL.NET连接器()中的
MySQL.Data.dll
我将dll放在运行Sript的同一文件夹中

更新

您需要在使用dll之前导入它。 如果dll位于脚本所在的同一文件夹中,则此小脚本适用于我:

Add-Type -Path "$(Split-Path -Parent $MyInvocation.MyCommand.Path)\MySQL.Data.dll"

$SQLServer = "server.com"
$SQLDBName = "DB_Name"
$uid       = "User_Name"
$pwd       = "Pass"


$Command             = New-Object MySql.Data.MySqlClient.MySqlCommand
$conn                = New-Object MySql.Data.MySqlClient.MySqlConnection("server=$SQLServer;user id=$uid;password=$pwd;database=$SQLDBName")
$Command.CommandText = "Your Update / Insert Command"
$Command.Connection  = $conn

$Command.Connection.Open()
[int]$i = $Command.ExecuteNonQuery()
$Command.Connection.Close()

$i保存受影响的行数

代码在哪里运行?在您的桌面上还是在另一台服务器上?代码正在我的工作PC上运行如果代码与MySQL Workbench在同一台机器上运行,并且与MySQL Workbench在同一用户凭据下运行,但是代码没有连接,而Workbench没有连接,那么我所能想到的就是一个错误的连接字符串,或者Workbench和powershell正在使用不同的端口忘了说dll必须导入:
Add Type-Path“$(分割路径-Parent$MyInvocation.MyCommand.Path)\MySQL.Data.dll”
我已经做了您建议的更改。我必须使
addtype
命令成为一个直接路径,因为
$splitpath
导致了错误。我现在收到以下错误:>请验证是否加载了包含此类型的程序集。谢谢。这一部分现在已经解决,但是mySQL出现了一个拒绝访问错误。密码和用户名都是正确的。我正在本地机器上测试。现在我正在查看所有SQL信息,以找到一种允许这种通信的方法