我正在尝试通过Ubuntu中的命令行将大约300MB的sql文件导入MySql.我用了
source /var/www/myfile.sql;
Run Code Online (Sandbox Code Playgroud)
现在它显示了看似无限的行:
Query OK, 1 row affected (0.03 sec)
Run Code Online (Sandbox Code Playgroud)
然而它现在已经运行了一段时间.我之前没有导入这么大的文件所以我只是想知道这是否正常,如果进程停止或有一些错误,这将显示在命令行中还是这个进程将无限期地继续?
谢谢
Mar*_*Nuc 112
您可以使用标准输入导入.sql文件,如下所示:
mysql -u <user> -p<password> <dbname> < file.sql
注意:<-p>和之间不应该有空格<password>
参考:http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
建议编辑的注意事项:建议的编辑使用内联密码参数稍微改变了这个答案.我可以推荐它用于脚本,但是你应该知道,当你直接在参数(-p<password>)中写密码时,它可以通过shell历史记录缓存,向任何可以读取历史文件的人显示你的密码.而-p要求您通过标准输入输入密码.
Par*_*ede 59
关于导入大文件所花费的时间的人最重要的是需要更多时间是因为mysql的默认设置是"autocommit = true",你必须在导入文件之前将其设置为off,然后检查导入如何像gem一样工作...
首先打开MySQL:
mysql -u root -p
然后,您只需要执行以下操作:
mysql>use your_db
mysql>SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
+1到@MartinNuc,您可以mysql在批处理模式下运行客户端,然后您将看不到"OK"行的长流.
导入给定SQL文件所需的时间取决于很多事情.不仅是文件的大小,还包括文件的类型,服务器服务器的强大程度,以及同时运行的其他内容.
@MartinNuc说他可以在4-5分钟内加载4GB的SQL,但我已经运行了0.5 GB的SQL文件并且在较小的服务器上需要45分钟.
我们无法猜测在服务器上运行SQL脚本需要多长时间.
你的评论,
@MartinNuc是正确的你可以选择让mysql客户端打印每个语句.或者您可以打开第二个会话并运行mysql> SHOW PROCESSLIST以查看正在运行的内容.但是你可能更感兴趣的是"完成百分比"数字或估计完成剩余陈述需要多长时间.
对不起,没有这样的功能.mysql客户端不知道运行以后的语句需要多长时间,甚至不知道有多少语句.因此,无法对完成所需的时间进行有意义的估算.
| 归档时间: |
|
| 查看次数: |
134947 次 |
| 最近记录: |