我必须从Powershell脚本将数据推送到远程数据库。
数据库的服务器使用多个实例,每个实例使用一个特定的套接字。
我尝试使用.Net MySQL连接器远程打开连接,如下所示:
$mdir = Split-Path $script:MyInvocation.MyCommand.Path
[void][system.reflection.Assembly]::LoadFrom("$mdir\MySQL.Data.dll")
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = "host=$myHost;port=$Port;uid=$User;pwd=$Pass;database=$Database;Socket=$Socket;Pooling=False"
$connection.Open()
我收到错误消息,说Socket不是现有关键字。 我在谷歌上发现了对该关键字的引用,但实际上并未在官方文档中提及。
显示我想要连接的内容的示例:
Server : db.domain.com
Port : 2345
Socket : /var/sockets/mycustomsocket.sock
有没有办法做我想做的事情,如果有的话,我做错了什么?
我做错了是对客户的技术知识过于信任,但至少,我学到了一些东西!
由于MySQL的工作方式,我所描述的案例纯属无稽之谈。 当实例使用套接字时,该套接字绑定到特定端口。因此,我的客户向我描述导致该问题的案例是不可能的。
不可能让多个MySQL实例在同一端口上侦听,但使用不同的套接字。因此,想要连接到远程文件套接字是一个问题,您应该能够使用ip / hostname和port进行连接。
MySQL中的Socket参数应该在本地使用,如注释中所述。