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

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

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

你知道我哪里做错了吗?


当前回答

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

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

希望这能帮助到一些人。

其他回答

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

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

希望这能帮助到一些人。

因为mysql -u你的用户名-p你的密码你的数据库< text_file不能在远程服务器上工作(亚马逊的EC2)…

确保首先创建了数据库。

然后:

mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql

我犯了这个错误,我尝试了所有我能得到的建议,但都无济于事。

最后,问题是我的文件夹在文件夹名称中有一个空格,在文件夹路径中出现正斜杠,一旦我找到并删除它,它就工作得很好。

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

 \home\sivakumar\Desktop\test.sql

to

 /home/sivakumar/Desktop/test.sql

因此,命令将是:

source /home/sivakumar/Desktop/test.sql

如果你正在尝试这个命令:

mysql -u root -proot -D database < /path/to/script.sql

你可能会得到这样的错误:如果你有特殊字符,主要是' "

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/path/to/script.sql' at line 1

所以我建议使用这样的命令:

echo "source /path/to/script.sql" | mysql -u root -proot -D database

该命令将执行source /path/to/script。SQL一旦连接到服务器,将执行您的脚本。