通过命令行将大型SQL文件导入MySQL

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (50)

我试图通过Ubuntu中的命令行将一个大约300 MB的SQL文件导入到MySQL。我用

source /var/www/myfile.sql;

现在,它显示的似乎是无限行的:

Query OK, 1 row affected (0.03 sec)

然而,它已经运行了一段时间了。我以前还没有导入这么大的文件,所以我只想知道这是否正常,如果进程停止或有一些错误,这会出现在命令行中,还是会无限期地继续下去?

谢谢

提问于
用户回答回答于

可以使用标准输入导入.sql文件,如下所示:

mysql -u <user> -p<password> <dbname> < file.sql

注:之间不应该有空隙<-p><password>

建议编辑的说明:建议编辑使用内联密码参数,对此答案略有更改。我可以为脚本推荐它,但是应该知道,当直接在参数中写入密码时(-p<password>)它可能被shell历史记录捕获,向任何能够读取历史文件的人透露您的密码。鉴于-p要求输入密码的标准输入。

用户回答回答于

关于导入大型文件所花费的时间(最重要的是,这需要更多的时间),因为MySQL的默认设置是“autoCOMMIT=true”,必须在导入文件之前启动它,然后检查导入是如何工作的,就像一个gem...

第一个打开MySQL:

mysql-u root-p

然后,只需做以下工作:

mysql>use your_dbmysql>SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;

扫码关注云+社区