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

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

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

你知道我哪里做错了吗?


当前回答

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

 \home\sivakumar\Desktop\test.sql

to

 /home/sivakumar/Desktop/test.sql

因此,命令将是:

source /home/sivakumar/Desktop/test.sql

其他回答

你有很多选择:

MySQL命令行客户端:MySQL -h hostname -u user database < path/to/test.sql 安装MySQL GUI工具并打开SQL文件,然后执行它 如果数据库可以通过web服务器访问,请使用phpmysql

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

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

所有排在前面的答案都是好的。但如果有人想从远程服务器上的文本文件中运行查询并将结果保存到一个文件中(而不是在控制台上显示),你可以这样做:

mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file

希望这能帮助到一些人。

我来这里也是为了寻找这个答案,下面是我发现最适合我的答案:注意,我使用的是Ubuntu 16.x.x

访问mysql使用:

Mysql -u <your_user> - p

在mysql提示符下,输入:

源file_name.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 

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

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