从documentation开始,最基本形式的导入命令是:
mysql.exe < example.sql
当我从Windows的命令行运行它时,它可以正常工作。但是,当我使用mysql.exe
参数启动流程< example.sql
时,它无效。例如,创建快捷方式并将其路径设置为mysql.exe < example.sql
不起作用,它仅打印mysql.exe
的帮助信息。
作为旁注,我在尝试运行以下C#代码时首先注意到了这个问题:
new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "mysql.exe",
Arguments = "< example.sql",
}
}.Start();
答案 0 :(得分:2)
< example.sql
部分不构成mysql.exe
的参数; <
字符表示redirection运算符,因此文件example.sql
的内容会重定向到mysql.exe
。
我猜您必须将文件名更改为cmd.exe
,并将参数更改为/C "mysql.exe < example.sql"
。考虑指定所有文件的完整绝对路径。
答案 1 :(得分:0)
我不在Windows工作,但我认为你最好填写完整路径+数据库主机名信息:
C:\mysql\directory\bin\mysql -h {hostname} -u {username} -p {databasename} < example.sql