gpt4 book ai didi

mysql - 执行位于 SFTP 上的 MySQL 脚本

转载 作者:行者123 更新时间:2023-11-30 00:17:18 25 4
gpt4 key购买 nike

我编写了一个 Windows 服务 (C#),它连接到 SFTP 位置、解压缩包含 MySQL 脚本的文件,并执行这些脚本以将数据注入(inject) 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://zendto.server.com/ftp/datadump/data_2014-05-08/mysql.sql"

运行该进程时,我在事件日志中收到以下错误:

The filename, directory name, or volume label syntax is incorrect.

我还尝试从字符串中删除 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"

我得到了一个不同的错误:

The system cannot find the path specified.

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

最佳答案

没有看到你的代码我只能猜测。

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

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

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

简单地说,您通过 SFTP 与 Renci.SSHNet 连接这一事实并不会使 Process 神奇地在本地和远程文件系统上工作。

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

虽然如果您能够执行远程“unzip”命令,您也应该能够执行远程 MySQL 客户端(而不是本地 Windows mysql.exe 客户端)。这将节省下载脚本和上传回数据的带宽。

关于mysql - 执行位于 SFTP 上的 MySQL 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23553312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com