我想在MySQL中执行包含SQL查询的文本文件 .
我试图运行 source /Desktop/test.sql 并收到错误:
source /Desktop/test.sql
mysql> . \ home \ sivakumar \ Desktop \ test.sql错误:无法打开文件'\ home \ sivakumar \ Desktop \ test.sql',错误:2
对我做错了什么的想法?
mysql -uusername -ppassword database-name < file.sql
很可能,你只需要更改斜杠/ blackslash:from
\home\sivakumar\Desktop\test.sql
至
/home/sivakumar/Desktop/test.sql
所以命令是:
source /home/sivakumar/Desktop/test.sql
使用 mysql command prompt 中的以下内容 -
source \\home\\user\\Desktop\\test.sql;
不使用报价单 . 即使路径 contains space(' ') 使用 no quotation at all .
如果您在MySQL命令行 mysql> ,则必须将SQL文件声明为 source .
mysql>
source
mysql> source \home\user\Desktop\test.sql;
你有很多选择:
使用MySQL命令行客户端: mysql -h hostname -u user database < path/to/test.sql
mysql -h hostname -u user database < path/to/test.sql
安装MySQL GUI工具并打开SQL文件,然后执行它
如果数据库可通过您的网络服务器使用,请使用phpmysql
您可以使用以下命令执行已在文本文件中编写的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
所有最佳答案都很好 . 但是,如果有人想要从远程服务器上的文本文件运行查询 AND 将结果保存到文件(而不是在控制台上显示),您可以这样做:
mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file
希望这有助于某人 .
我最喜欢的选择是:
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"
我也来这里寻找这个答案,这里是我发现最适合我的方法:注意我使用的是Ubuntu 16.x.x
mysql -u <your_user> - p
source file_name.sql
希望这可以帮助 .
mysql> source C:\Users\admin\Desktop\fn_Split.sql
不要指定单引号 .
如果上述命令不起作用,请将文件复制到c:驱动器,然后重试 . 如下所示,
mysql> source C:\fn_Split.sql
Give the path of .sql file as:
source c:/dump/SQL/file_name.sql;
直接从命令行传递密码参数绝不是一个好习惯,它保存在 ~/.bash_history 文件中,可以从其他应用程序访问 .
~/.bash_history
请改用:
mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p Enter password:
为了将来的参考,我发现这与前面提到的方法相比,在msql控制台的Windows下:
mysql >> source c://path_to_file//path_to_file//file_name.sql;
source c://path_to_file//path_to_file//file_name.sql;
如果您的根驱动器未被称为“c”,那么只需与驱动器的名称进行交换即可 . 首先尝试反斜杠,如果它们不起作用,请尝试正斜杠 . 如果它们也不起作用,请确保您拥有完整的文件路径,文件名上的.sql扩展名,如果您的版本坚持使用分号,请确保它在那里然后重试 .
由于 mysql -u yourusername -p yourpassword yourdatabase < text_file 无法在远程服务器(亚马逊的EC2)上运行...
确保首先创建数据库 .
mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql
我有这个错误,并尝试了所有的建议,我可以得到无济于事 .
最后,问题是我的文件夹在文件夹名称中有一个空格,在文件夹路径中显示为正斜杠,一旦我找到并删除它,它工作正常 .
15 回答
很可能,你只需要更改斜杠/ blackslash:from
至
所以命令是:
使用 mysql command prompt 中的以下内容 -
不使用报价单 . 即使路径 contains space(' ') 使用 no quotation at all .
如果您在MySQL命令行
mysql>
,则必须将SQL文件声明为source
.你有很多选择:
使用MySQL命令行客户端:
mysql -h hostname -u user database < path/to/test.sql
安装MySQL GUI工具并打开SQL文件,然后执行它
如果数据库可通过您的网络服务器使用,请使用phpmysql
您可以使用以下命令执行已在文本文件中编写的mysql语句:
如果尚未创建您的数据库,请首先使用以下命令登录您的mysql:
然后:
然后:
应该这样做!
更多信息:http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
所有最佳答案都很好 . 但是,如果有人想要从远程服务器上的文本文件运行查询 AND 将结果保存到文件(而不是在控制台上显示),您可以这样做:
希望这有助于某人 .
我最喜欢的选择是:
我以这种方式使用它,因为当你用“”字符串串起它时,你会避免错误的路径和带空格的错误 - 而且可能会遇到更多我没有遇到过的字符问题 .
使用@elcuco评论我建议在[space]之前使用此命令,因此它告诉bash忽略在历史记录中保存它,这将在大多数bash中开箱即用 .
如果它仍在历史记录中保存您的命令,请查看以下解决方案:
Execute command without keeping it in history
额外的安全编辑
如果您想要更加安全,可以使用以下命令并在命令行输入中输入密码:
我也来这里寻找这个答案,这里是我发现最适合我的方法:注意我使用的是Ubuntu 16.x.x
mysql -u <your_user> - p
source file_name.sql
希望这可以帮助 .
不要指定单引号 .
如果上述命令不起作用,请将文件复制到c:驱动器,然后重试 . 如下所示,
Give the path of .sql file as:
直接从命令行传递密码参数绝不是一个好习惯,它保存在
~/.bash_history
文件中,可以从其他应用程序访问 .请改用:
为了将来的参考,我发现这与前面提到的方法相比,在msql控制台的Windows下:
mysql >>
source c://path_to_file//path_to_file//file_name.sql;
如果您的根驱动器未被称为“c”,那么只需与驱动器的名称进行交换即可 . 首先尝试反斜杠,如果它们不起作用,请尝试正斜杠 . 如果它们也不起作用,请确保您拥有完整的文件路径,文件名上的.sql扩展名,如果您的版本坚持使用分号,请确保它在那里然后重试 .
由于
mysql -u yourusername -p yourpassword yourdatabase < text_file
无法在远程服务器(亚马逊的EC2)上运行...确保首先创建数据库 .
然后:
我有这个错误,并尝试了所有的建议,我可以得到无济于事 .
最后,问题是我的文件夹在文件夹名称中有一个空格,在文件夹路径中显示为正斜杠,一旦我找到并删除它,它工作正常 .