我想在MySQL中执行包含SQL查询的文本文件。
我试图运行source /Desktop/test.sql
并收到错误:
mysql>。 \\ home \\ sivakumar \\ Desktop \\ test.sql错误:无法打开文件'\\ home \\ sivakumar \\ Desktop \\ test.sql',错误:2
对我做错了什么的想法?
#1楼
您可以使用以下命令执行已在文本文件中编写的mysql语句:
mysql -u yourusername -p yourpassword yourdatabase < text_file
如果尚未创建您的数据库,请首先使用以下命令登录您的mysql:
mysql -u yourusername -p yourpassword yourdatabase
然后:
mysql>CREATE DATABASE a_new_database_name
然后:
mysql -u yourusername -p yourpassword a_new_database_name < text_file
应该这样做!
更多信息: http : //dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
#2楼
很可能,你只需要更改斜杠/ blackslash:from
\home\sivakumar\Desktop\test.sql
至
/home/sivakumar/Desktop/test.sql
所以命令是:
source /home/sivakumar/Desktop/test.sql
#3楼
从mysql命令提示符使用以下内容 -
source \\home\\user\\Desktop\\test.sql;
不使用报价单。 即使路径包含空格('')也 根本不使用引号 。
#4楼
由于mysql -u yourusername -p yourpassword yourdatabase < text_file
无法在远程服务器(Amazon的EC2)上运行...
确保首先创建数据库。
然后:
mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql
#5楼
我最喜欢的选择是:
mysql --user="username" --database="databasename" --password="yourpassword" < "filepath"
我以这种方式使用它,因为当你用“”字符串串起它时,你会避免错误的路径和带空格的错误 - 而且可能会遇到更多我没有遇到过的字符问题。
使用@elcuco评论我建议在[space]之前使用此命令,因此它告诉bash忽略在历史记录中保存它,这将在大多数bash中开箱即用。
如果它仍在历史记录中保存您的命令,请查看以下解决方案:
额外的安全编辑
如果您想要更加安全,可以使用以下命令并在命令行输入中输入密码:
mysql --user="username" --database="databasename" -p < "filepath"
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3190820