我如何在MySQL数据库上运行SQL文本文件?

我是MySQL的新手。 我想执行一个包含SQL查询的文本文件。

我试图运行source /Desktop/test.sql并收到错误,

 mysql> . \home\sivakumar\Desktop\test.sql ERROR: Failed to open file '\home\sivakumar\Desktop\test.sql', error: 2 

如果你在MySQL命令行mysql>你必须声明SQL文件作为source

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

你有很多select:

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

您可以使用以下命令执行已写入文本文件的mysql语句:

 mysql -u yourusername -p yourpassword yourdatabase < text_file 

如果您的数据库尚未创build,请先使用以下命令login到您的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 yourdatabase < query_file > results_file 

希望这有助于某人。

我最喜欢的select是:

 mysql --user="username" --database="databasename" --password="yourpassword" < "filepath" 

我以这种方式使用它,因为当你用“”来避免错误的path和错误,并且可能还有更多的问题与我没有遇到的字符有关。

给出.sql文件的path为:

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

请参阅图像:

 mysql> source C:\Users\admin\Desktop\fn_Split.sql 

不要指定单引号。

如果上述命令不起作用,请将该文件复制到c:驱动器并重试。 如下所示,

 mysql> source C:\fn_Split.sql 

mysql命令提示符使用以下 –

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

不使用引号。 即使path包含空格(''),也 根本不使用引号

很可能,你只需要改变斜杠/黑色的:from

  \home\sivakumar\Desktop\test.sql 

  /home/sivakumar/Desktop/test.sql 

所以命令是:

 source /home/sivakumar/Desktop/test.sql 

绝不是直接从命令行传递密码参数的好习惯,它保存在~/.bash_history文件中,可以从其他应用程序访问。

用这个代替:

 mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p Enter password: 

由于mysql -u yourusername -p yourpassword yourdatabase < text_file在远程服务器(Amazon EC2)上mysql -u yourusername -p yourpassword yourdatabase < text_file

确保首先创build数据库。

然后:

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

为了将来的参考,我已经发现这个工作与前面提到的方法,在您的msql控制台中的Windows下:

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

如果您的根驱动器不被称为“c”,那么只需与您的驱动器被称为交换。 首先尝试反斜杠,如果他们不工作,尝试正斜杠。 如果他们也不工作,确保你有完整的文件path,文件名的.sql扩展名,如果你的版本坚持分号,确保它在那里,然后再试一次。

我有这个错误,并尝试所有的build议,我可能无济于事。

最后,问题是我的文件夹在文件夹名称中有一个空格,在文件夹path中显示为正斜杠,一旦我find并删除它,它工作正常。

我也来这里寻找这个答案,这里是我发现最适合我的工作:注意我使用的是Ubuntu 16.xx

  1. 在命令行中使用mysql -u root - p访问mysql,其中-u
  2. 保存你的.sql文件,我的是在Desktop / ICT458上
  3. 在mysql提示符下,inputmysql> source /home/user_name/Desktop/ICT458/file_name.sql

希望这可以帮助。

mysql -uusername -ppassword数据库名称<file.sql

你可以使用SQLyog的Execute SQL脚本来执行.sql文件。 select文件,然后按执行。 :-)你有30天免费试用。

而且,你正在得到错误,因为你有文件名引号。

该文件必须位于您运行mysql的客户端主机上。 文件名必须是列出文件全名的绝对path名,或者是相对于您调用mysql的目录指定的path名​​。 例如,如果您在C:\ mysql目录中的Windows计算机上启动了mysql,而脚本文件是C:\ scripts目录中的my_commands.sql,则以下两个SOURCE命令都会告诉mysql执行文件中的SQL语句:

mysql> SOURCE C:\ scripts \ my_commands.sql;

mysql> SOURCE .. \ scripts \ my_commands.sql;

执行脚本文件的另一种方法是在mysql命令行上命名它。 调用mysql并使用<inputredirect操作符指定从中读取查询input的文件:

shell> mysql db_name <input_file