执行位于SFTP上的MySQL脚本

执行位于SFTP上的MySQL脚本,mysql,windows,sftp,Mysql,Windows,Sftp,我编写了一个Windows服务C,它连接到一个SFTP位置,解压一个包含MySQL脚本的文件,并执行这些脚本将数据注入MySQL数据库 我无法运行脚本。以下是我的流程: 使用Renci.SSHNet库连接到SFTP 创建将打开命令窗口的进程 创建一行,该行将使用适当的参数运行mysql.exe。下面是我在命令窗口中编写内容的示例: C:\Program Files x86\MySQL\MySQL Workbench 6.0 CE\MySQL.exe-user=username-password=

我编写了一个Windows服务C,它连接到一个SFTP位置,解压一个包含MySQL脚本的文件,并执行这些脚本将数据注入MySQL数据库

我无法运行脚本。以下是我的流程:

使用Renci.SSHNet库连接到SFTP 创建将打开命令窗口的进程 创建一行,该行将使用适当的参数运行mysql.exe。下面是我在命令窗口中编写内容的示例:

C:\Program Files x86\MySQL\MySQL Workbench 6.0 CE\MySQL.exe-user=username-password=password1-host=serverHostName-port=3306-database=mysqlData 运行进程时,我在事件日志中遇到以下错误:

文件名、目录名或卷标语法不正确

我还尝试从字符串中删除sftp限定符,因为我应该已经连接到sftp

C:\Program Files x86\MySQL\MySQL Workbench 6.0 CE\MySQL.exe-user=username-password1-host=serverHostName-port=3306-database=mysqlData 我得到一个不同的错误:

系统找不到指定的路径


MySQL可以直接连接到SFTP吗?或者我必须先将文件拉到MySQL所在的服务器上吗?

我只能猜测,没有看到您的代码

我假设您正在本地执行这些mysql.exe命令

第一个错误是由于您试图从sftp://URL重定向mysql.exe的输入而导致的。这在Windows上是不可能的,事实上,我不知道有任何操作系统可以做到这一点

第二个错误是由于试图从本地环境访问远程文件引起的

简单地说,您通过SFTP与Renci.SSHNet连接的事实并不能使该进程在本地和远程文件系统上神奇地工作

如果您的远程MySQL数据库可以使用本地MySQL.exe进行远程管理,那么解决方案是下载MySQL脚本并在本地使用它们


不过,如果您能够执行远程解压命令,那么您也应该能够执行远程MySQL客户端,而不是本地Windows MySQL.exe客户端。这将节省下载脚本和上传数据的带宽。

这听起来像是一个很好的解决方案。你能澄清你实际上想做什么吗?可能有更好的方法来执行此过程。谢谢Martin。我几乎得出了相同的结论,但我想确定一下。我可能不得不将脚本下载到MySQL所在的服务器上。谢谢你的回复!