如何使用 golang 导入/加载/运行 mysql 文件?

sam*_*adi -1 mysql go

I\xe2\x80\x99m 尝试使用此 golang 语句运行/加载 sql 文件到 mysql 数据库中,但这不起作用:

\n\n
exec.Command("mysql", "-u", "{username}", "-p{db password}", "{db name}", "<", file abs path )\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是当我在 Windows 命令提示符中使用以下命令时,它\xe2\x80\x99s 工作完美。

\n\n
mysql -u {username} -p{db password} {db name} < {file abs path}\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么问题出在哪里呢?

\n

Bil*_*win 5

正如其他人回答的那样,您不能使用<重定向运算符,因为exec不使用 shell。

但您不必重定向输入来读取 SQL 文件。您可以将参数传递给 MySQL 客户端以使用其source命令。

exec.Command("mysql", "-u", "{username}", "-p{db password}", "{db name}",
    "-e", "source {file abs path}" )
Run Code Online (Sandbox Code Playgroud)

source命令是 MySQL 客户端的内置命令。请参阅https://dev.mysql.com/doc/refman/5.7/en/mysql-commands.html