首页 文章

如何在MySQL中运行SQL脚本?

提问于
浏览
315

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

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

mysql> . \ home \ sivakumar \ Desktop \ test.sql错误:无法打开文件'\ home \ sivakumar \ Desktop \ test.sql',错误:2

对我做错了什么的想法?

15 回答

  • 3
    mysql -uusername -ppassword database-name < file.sql
    
  • 43

    很可能,你只需要更改斜杠/ blackslash:from

    \home\sivakumar\Desktop\test.sql
    

    /home/sivakumar/Desktop/test.sql
    

    所以命令是:

    source /home/sivakumar/Desktop/test.sql
    
  • 13

    使用 mysql command prompt 中的以下内容 -

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

    不使用报价单 . 即使路径 contains space(' ') 使用 no quotation at all .

  • 106

    如果您在MySQL命令行 mysql> ,则必须将SQL文件声明为 source .

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

    你有很多选择:

    • 使用MySQL命令行客户端: mysql -h hostname -u user database < path/to/test.sql

    • 安装MySQL GUI工具并打开SQL文件,然后执行它

    • 如果数据库可通过您的网络服务器使用,请使用phpmysql

  • 127

    您可以使用以下命令执行已在文本文件中编写的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

  • 15

    所有最佳答案都很好 . 但是,如果有人想要从远程服务器上的文本文件运行查询 AND 将结果保存到文件(而不是在控制台上显示),您可以这样做:

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

    希望这有助于某人 .

  • 11

    我最喜欢的选择是:

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

    我以这种方式使用它,因为当你用“”字符串串起它时,你会避免错误的路径和带空格的错误 - 而且可能会遇到更多我没有遇到过的字符问题 .


    使用@elcuco评论我建议在[space]之前使用此命令,因此它告诉bash忽略在历史记录中保存它,这将在大多数bash中开箱即用 .

    如果它仍在历史记录中保存您的命令,请查看以下解决方案:

    Execute command without keeping it in history


    额外的安全编辑

    如果您想要更加安全,可以使用以下命令并在命令行输入中输入密码:

    mysql --user="username" --database="databasename" -p < "filepath"
    
  • 7

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

    • 使用以下方法访问mysql:

    mysql -u <your_user> - p

    • 在mysql提示符下,输入:

    source file_name.sql

    希望这可以帮助 .

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

    不要指定单引号 .

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

    mysql> source C:\fn_Split.sql
    
  • 6

    Give the path of .sql file as:

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

    See In The Image:

  • 0

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

    请改用:

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

    为了将来的参考,我发现这与前面提到的方法相比,在msql控制台的Windows下:

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

    如果您的根驱动器未被称为“c”,那么只需与驱动器的名称进行交换即可 . 首先尝试反斜杠,如果它们不起作用,请尝试正斜杠 . 如果它们也不起作用,请确保您拥有完整的文件路径,文件名上的.sql扩展名,如果您的版本坚持使用分号,请确保它在那里然后重试 .

  • 358

    由于 mysql -u yourusername -p yourpassword yourdatabase < text_file 无法在远程服务器(亚马逊的EC2)上运行...

    确保首先创建数据库 .

    然后:

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

    我有这个错误,并尝试了所有的建议,我可以得到无济于事 .

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

相关问题