我想在MySQL中执行一个包含SQL查询的文本文件。

我试着运行source /Desktop/test。SQL和收到的错误:

mysql >。回家\ \ sivakumar桌面\ \测试。sql ERROR:无法打开文件 ' \ \ sivakumar \电脑\测试。Sql ',错误:2

你知道我哪里做错了吗?


当前回答

作为将来的参考,我发现这与前面提到的方法相比,在Windows下的msql控制台:

mysql > >源c: / / path_to_file / / path_to_file / / file_name.sql;

如果您的根驱动器不叫“c”,那么只需与您的驱动器交换。先试试反斜杠,如果不行,再试试正斜杠。如果它们也不起作用,请确保您有完整的文件路径,文件名上的.sql扩展名,如果您的版本坚持使用分号,请确保它存在并重试。

其他回答

从linux 14.04到MySql 5.7,使用cat命令管道登录MySql:

cat /Desktop/test.sql | sudo mysql -uroot -p 

您可以使用此方法直接从Shell执行许多MySQL命令。例如:

echo "USE my_db; SHOW tables;" | sudo mysql -uroot -p 

请确保使用分号(';')分隔命令。

我在上面的答案中没有看到这种方法,我认为这是一个很好的贡献。

很可能,你只需要改变斜杠/黑斜杠: 从

 \home\sivakumar\Desktop\test.sql

to

 /home/sivakumar/Desktop/test.sql

因此,命令将是:

source /home/sivakumar/Desktop/test.sql

如果你在MySQL命令行MySQL >,你必须声明SQL文件作为源文件。

mysql> source \home\user\Desktop\test.sql;

我使用Bash的Here字符串进行即时SQL执行:

mysql -uroot -p <<<"select date(now())"

https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Strings

给出.sql文件的路径:

source c:/dump/SQL/file_name.sql;