我想在MySQL中执行一个包含SQL查询的文本文件。
我试着运行source /Desktop/test。SQL和收到的错误:
mysql >。回家\ \ sivakumar桌面\ \测试。sql ERROR:无法打开文件 ' \ \ sivakumar \电脑\测试。Sql ',错误:2
你知道我哪里做错了吗?
我想在MySQL中执行一个包含SQL查询的文本文件。
我试着运行source /Desktop/test。SQL和收到的错误:
mysql >。回家\ \ sivakumar桌面\ \测试。sql ERROR:无法打开文件 ' \ \ sivakumar \电脑\测试。Sql ',错误:2
你知道我哪里做错了吗?
当前回答
你可以使用下面的命令来执行已经写入文本文件的mysql语句:
mysql -u yourusername -p yourpassword yourdatabase < text_file
如果你的数据库还没有创建,首先登录到你的mysql使用:
mysql -u yourusername -p yourpassword
然后:
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 --user="username" --database="databasename" --password="yourpassword" < "filepath"
我这样使用它是因为当你用""来串的时候,你可以避免错误的路径和空格的错误,而且可能还有更多我没有遇到过的字符问题。
对于@elcuco注释,我建议在使用此命令之前使用[空格],这样它就会告诉bash忽略在历史中保存它,这将在大多数bash中开箱工作。
如果您的命令仍然保存在历史记录中,请查看以下解决方案:
执行命令时不保留历史记录
额外的安全编辑
如果你想要更加安全,你可以使用以下命令并在命令行输入输入密码:
mysql --user="username" --database="databasename" -p < "filepath"
从命令行直接传递password参数永远都不是一个好习惯,它保存在~/。Bash_history文件,可以从其他应用程序访问。
用这个代替:
mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p
Enter password:
有很多种方法。
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命令行客户端:MySQL -h hostname -u user database < path/to/test.sql 安装MySQL GUI工具并打开SQL文件,然后执行它 如果数据库可以通过web服务器访问,请使用phpmysql
我使用Bash的Here字符串进行即时SQL执行:
mysql -uroot -p <<<"select date(now())"
https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Strings