我想在MySQL中执行一个包含SQL查询的文本文件。
我尝试运行source /Desktop/test.sql
并收到错误:
mysql>。\ home \ sivakumar \ Desktop \ test.sql错误:无法打开文件“ \ home \ sivakumar \ Desktop \ test.sql”,错误:2
有什么想法我做错了吗?
我想在MySQL中执行一个包含SQL查询的文本文件。
我尝试运行source /Desktop/test.sql
并收到错误:
mysql>。\ home \ sivakumar \ Desktop \ test.sql错误:无法打开文件“ \ home \ sivakumar \ Desktop \ test.sql”,错误:2
有什么想法我做错了吗?
Answers:
如果您使用的是MySQL命令行mysql>
,则必须将SQL文件声明为source
。
mysql> source \home\user\Desktop\test.sql;
\
在空格前使用,或使用来包装文件名"
。
您可以使用以下命令执行已写入文本文件中的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
mysql -u yourusername -p"yourpassword"
我最喜欢的选择是:
mysql --user="username" --database="databasename" --password="yourpassword" < "filepath"
我之所以使用它,是因为当您将其与“”一起使用时,可以避免错误的路径和空格错误,而且还可以避免与char接触时遇到的更多问题。
使用@elcuco注释时,我建议在[space]之前使用此命令,以便它告诉bash忽略将其保存在历史记录中,这在大多数bash中都是开箱即用的。
如果它仍然将您的命令保存在历史记录中,请查看以下解决方案:
额外的安全性
万一您想更加安全,可以使用以下命令并在命令行输入中输入密码:
mysql --user="username" --database="databasename" -p < "filepath"
所有最重要的答案都是好的。但是为了以防万一有人想在远程服务器上运行从一个文本文件中的查询和结果保存到一个文件中(而不是显示在控制台上),你可以这样做:
mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file
希望这对某人有帮助。
-p
密码和密码之间应该没有空格
SELECT ... INTO OUTFILE /path/to/file.csv
是更有效的方法。在此处查看选项和语法-dev.mysql.com/doc/refman/5.7/en/select-into.html
将.sql文件的路径指定为:
source c:/dump/SQL/file_name.sql;
mysql> source C:\Users\admin\Desktop\fn_Split.sql
不要指定单引号。
如果以上命令不起作用,请将文件复制到c:驱动器,然后重试。如下所示,
mysql> source C:\fn_Split.sql
mysql -uusername -ppassword database-name < file.sql
在mysql命令提示符下使用以下命令 -
source \\home\\user\\Desktop\\test.sql;
不使用引号。即使路径包含space(''),也不使用任何引号。
有很多方法可以做到这一点。
From Workbench: File > Run SQL Script -- then follow prompts
From Windows Command Line:
Option 1: mysql -u usr -p
mysql> source file_path.sql
Option 2: mysql -u usr -p '-e source file_path.sql'
Option 3: mysql -u usr -p < file_path.sql
Option 4: put multiple 'source' statements inside of file_path.sql (I do this to drop and recreate schemas/databases which requires multiple files to be run)
mysql -u usr -p < file_path.sql
如果您从命令行获取错误,请确保您以前已经运行过
cd {!!>>mysqld.exe home directory here<<!!}
mysqld.exe --initialize
必须从mysqld.exe目录(因此是CD)运行。
希望这会有所帮助,而不仅仅是多余的。
由于mysql -u yourusername -p yourpassword yourdatabase < text_file
无法在远程服务器(Amazon EC2)上运行...
确保首先创建数据库。
然后:
mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql