在终端上将sql文件导入mysql时,为什么不在最后添加一个半冒号?
喜欢:
source file.sql
答案 0 :(得分:1)
此外,如果您正在执行单个sql语句,那么它不是必需的,因为只有在使用多个sql语句时它才是必需的。
您还可以在以下帮助链接中查看更多详细信息。
http://dev.mysql.com/doc/refman/5.7/en/entering-queries.html
<强> UPDATE1:强>
更好的选择是从mysql实用程序导入,如下所示 -
mysql -uroot -p my_db < /my_file_path/file.sql
但如果您想按来源进行,请按以下方式进行操作 -
通过以下命令连接mysql提示符,或者您可以使用任何gui工具。
mysql -uroot -p
现在从mysql提示符执行以下命令 -
mysql> source /tmp/file.sql
注意:mysql应该在你的文件存在的路径上拥有权限mysql在/ tmp中拥有权限你可以在my.cnf或my.ini中或通过“SHOW VARIABLES LIKE'tmpdir'”命令检查它的确切位置。
特殊:由于mysql将此路径用于临时文件,因此请勿在此处保留重要文件。
答案 1 :(得分:1)
source
是MySQL client command,而不是SQL命令。
您可能熟悉的另一个客户端命令是delimiter
。它用于更改语句终止符,因此您可以使用诸如CREATE PROCEDURE
之类的包含分号的语句。有时我使用双分号,因为这肯定是在程序主体中不会使用的东西。
mysql> delimiter ;;
mysql> CREATE PROCEDURE ... BEGIN ... END ;;
然后您可以将分隔符设置回惯用的;
mysql> delimiter ;
现在考虑一下:如果像delimiter
这样的mysql客户端命令需要使用分号终止符,则上面的命令会造成混乱。实际上,delimiter ;;
会将分隔符设置为单个;
,然后是语句终止符;
吗? delimiter ;
会将终止符设置为空白吗?
mysql客户端使用的解决方案是内置命令不需要语句终止符。
这适用于所有客户端构建的命令,例如:
mysql> source file.sql
mysql> pager less
mysql> warnings
mysql> tee outfile.txt