我编写了一个连接到SFTP位置的Windows服务(C#),解压缩包含MySQL脚本的文件,并且应该执行这些脚本以将数据注入MySQL数据库。
我无法让脚本运行。这是我的过程:
创建一条将使用适当的参数运行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://zendto.server.com/ftp/datadump/data_2014-05-08/mysql.sql"
运行进程时,我在EventLog中收到以下错误:
文件名,目录名或卷标语法不正确。
我也尝试从字符串中删除sftp限定符,因为我应该已经连接到SFTP。
"C:\Program Files (x86)\MySQL\MySQL Workbench 6.0 CE\mysql.exe" --user=username --password=password1 --host=serverHostName --port=3306 --database=mysqlData < "/ftp/datadump/data_2014-05-08/mysql.sql"
我得到了一个不同的错误:
系统找不到指定的路径。
MySQL可以直接连接到SFTP吗?或者我是否必须将文件下载到MySQL所在的服务器?
答案 0 :(得分:0)
没有看到你的代码,我只能猜测。
我假设您在本地执行这些mysql.exe
命令。
第一个错误是由于您尝试从mysql.exe
网址重定向sftp://
的输入而导致的。这在Windows上是不可能的(实际上我不知道任何可能的操作系统)。
第二个错误是由尝试从本地环境访问远程文件引起的。
简单地说,通过SFTP与Renci.SSHNet连接的事实不会使Process
神奇地在本地和远程文件系统上工作。
如果可以远程管理远程MySQL数据库(使用本地mysql.exe
),解决方法是下载MySQL脚本并在本地使用它们。
虽然如果你能够执行远程“解压缩”命令,你也应该能够执行远程MySQL客户端(而不是本地Windows mysql.exe
客户端)。这样可以节省下载脚本和上传数据的带宽。