使用SimplySQL结合PSCredential连接MySQL失败:类型转换错误
解决SimplySQL连接MySQL时的PSCredential类型转换错误
问题根源
你在Open-MySqlConnection命令中犯了语法错误:-Credential参数传入的是字符串Cred,而非你创建的PSCredential变量$Cred。PowerShell中引用变量必须加$前缀,不加的话会被识别为普通字符串,自然无法转换为PSCredential类型,从而触发报错。
修正后的完整脚本
# 安装SimplySql模块(仅首次运行需要,已安装可注释) Install-Module SimplySql -Scope CurrentUser Import-Module -Name SimplySQL # 创建PSCredential凭据对象 $password = ConvertTo-SecureString "secpwd" -AsPlainText -Force [pscredential]$Cred = New-Object System.Management.Automation.PSCredential ("sqlwriter", $password) # 注意这里的参数是$Cred,不是Cred Open-MySqlConnection -server '192.168.0.70' -connectionname 'localhost' -database 'mydb' -Credential $Cred # 测试连接并输出结果 $testconnection = Test-SqlConnection -ConnectionName 'localhost' Write-Host "连接测试结果:$testconnection" # 示例:执行插入语句(如果需要的话) $InsertQuery = "INSERT INTO table1 (value1, value2) VALUES (@label1, @label2)" Invoke-SqlQuery -ConnectionName 'localhost' -Query $InsertQuery -Parameters @{label1="值1"; label2="值2"} Close-SqlConnection -connectionname 'localhost'
额外提示
- 若已经安装过SimplySql模块,可注释掉
Install-Module命令,避免重复安装的提示 - 测试连接后可以通过
Write-Host输出结果,直观确认连接状态 - 原脚本仅定义了插入查询字符串,未执行实际插入操作,若需要执行需添加
Invoke-SqlQuery命令并传入参数
内容的提问来源于stack exchange,提问作者alive-one
相关产品推荐
相关产品推荐

