【问题标题】:Mysql import command working when running on cmd but not when passing arguments directlyMysql import 命令在 cmd 上运行时有效,但在直接传递参数时无效
【发布时间】:2016-11-09 08:50:15
【问题描述】:

正如我从documentation 开始的,导入命令最基本的形式是:

mysql.exe < example.sql

当我从 Windows 的命令行运行它时,它可以工作。但是当我使用&lt; example.sql 参数启动进程mysql.exe 时它不起作用。例如,创建快捷方式并将其路径设置为mysql.exe &lt; example.sql 不起作用,它只会打印mysql.exe 的帮助信息。

附带说明一下,我在尝试运行以下 C# 代码时首先注意到了这个问题:

new Process
        {
            StartInfo = new ProcessStartInfo
            {
                FileName = "mysql.exe",
                Arguments = "< example.sql",
            }
        }.Start();

【问题讨论】:

  • 这个带有
  • &lt; example.sql 不是mysql.exe 的参数,&lt; 表示重定向操作符,所以文件example.sql 的内容被重定向到mysql.exe;我猜您必须将文件名更改为cmd.exe,并将参数更改为/C "mysql.exe &lt; example.sql";考虑指定所有文件的完整绝对路径...
  • @aschipfl 你知道将sql文件作为参数传递给mysql.exe的方法吗?您也可以将您的评论变成答案。它回答了我的问题。
  • 很遗憾,我无法为您提供mysql.exe 的帮助。请稍等一下,让我的评论转换为答案...

标签: mysql command-line cmd


【解决方案1】:

&lt; example.sql部分不构成mysql.exe的参数; &lt; 字符表示redirection 运算符,因此文件example.sql 的内容被重定向到mysql.exe

我猜你必须将文件名更改为cmd.exe,并将参数更改为/C "mysql.exe &lt; example.sql"。考虑指定所有文件的完整绝对路径。

【讨论】:

    【解决方案2】:

    我不在 Windows 中工作,但我假设您最好填写完整路径 + 数据库主机名信息:

    C:\mysql\directory\bin\mysql -h {hostname} -u {username} -p {databasename} < example.sql
    

    【讨论】:

    • ...以及example.sql 的完整路径;引用每个路径以避免空格和其他特殊字符的麻烦...
    猜你喜欢
    • 2013-05-13
    • 2012-01-31
    • 2021-11-26
    • 1970-01-01
    • 2019-07-19
    • 2017-01-15
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多