我试图通过命令行在Ubuntu中导入一个大约300MB的SQL文件到MySQL。我使用
source /var/www/myfile.sql;
字符串现在它显示了一个看似无限的行:
Query OK, 1 row affected (0.03 sec)
型我以前没有导入过这么大的文件,所以我只想知道这是否正常,如果进程停止或有一些错误,这会显示在命令行中还是这个进程会无限期地继续下去?谢谢
vpfxa7rd1#
您可以使用标准输入导入.sql文件,如下所示:第一个月
注意:<-p>和<password>之间不能有空格
<-p>
<password>
参考:http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
**建议编辑的注意事项:**这个答案被建议编辑为使用内联密码参数而略有改变。我可以推荐它用于脚本,但你应该知道,当你直接在参数(-p<password>)中写入密码时,它可能会被shell历史缓存,向任何可以读取历史文件的人透露你的密码。而-p要求你通过标准输入输入输入密码。
-p<password>
-p
z4bn682m2#
伙计们,关于导入大文件所花费的时间,最重要的是它需要更多的时间,因为mysql的默认设置是“autocommit = true”,你必须在导入文件之前设置它,然后检查导入如何像宝石一样工作。第一次打开MySQL:mysql -u root -p然后,你只需要做以下几点:第一个月mysql>SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;个
mysql>SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
azpvetkf3#
+1到@MartinNuc,你可以在批处理模式下运行mysql客户端,然后你就不会看到长长的“OK”行。导入一个给定的SQL文件所需的时间取决于很多因素。不仅是文件的大小,还有其中语句的类型,服务器的功能有多强大,以及同时运行的其他东西有多少。@MartinNuc说他可以在4-5分钟内加载4GB的SQL,但我已经运行了0.5GB的SQL文件,并在较小的服务器上花费了45分钟。我们无法真正猜测在服务器上运行SQL脚本需要多长时间。回复你的评论,@MartinNuc是正确的,你可以选择让mysql客户端打印每一条语句。或者你可以打开第二个会话并运行mysql> SHOW PROCESSLIST来查看正在运行的内容。但是你可能更感兴趣的是“完成百分比”数字或完成剩余语句所需的估计时间。很抱歉,没有这样的功能。mysql客户端不知道运行后面的语句需要多长时间,甚至不知道有多少语句。所以它不能给予一个有意义的估计,估计需要多长时间才能完成。
mysql
mysql> SHOW PROCESSLIST
wlp8pajw4#
我使用mysqldumpsplitter脚本来恢复大型sql,我把我的sql.gz拆分成单独的表,然后加载类似mysql workbench的东西,并将其作为恢复到所需模式的过程。下面是脚本https://github.com/kedarvj/mysqldumpsplitter这适用于更大的SQL恢复,我在一个网站上使用的平均值是2.5GB的sql.gz文件,20GB未压缩,完全恢复后约为100GB
qyuhtwio5#
我导入了最后几天一个大的SQL文件是大于11 GB。在我的情况下,不需要所有的数据库。我只导入了一些表我需要。所以也许以下解决方案工程的人;
grep -A 200 ‘CREATE TABLE `xyz_table’ sql_file_path > new_light_sql_file_path.sql
字符串一旦你创建了轻的sql文件,你可以很容易地导入它如下cmd。mysql -u username -p(pass)databaset < new_light_sql_file_path.sql
2w2cym1i6#
通过命令行将大型sql文件转换为MySql
1.第一个下载文件1.将文件粘贴到主页。1.在终端中使用以下命令(CMD)1.文件名:mysql -u username -p databsename < file.sql示例:mysql -u root -p anew < aanew.sql
6条答案
按热度按时间vpfxa7rd1#
您可以使用标准输入导入.sql文件,如下所示:
第一个月
注意:
<-p>
和<password>
之间不能有空格参考:http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
**建议编辑的注意事项:**这个答案被建议编辑为使用内联密码参数而略有改变。我可以推荐它用于脚本,但你应该知道,当你直接在参数(
-p<password>
)中写入密码时,它可能会被shell历史缓存,向任何可以读取历史文件的人透露你的密码。而-p
要求你通过标准输入输入输入密码。z4bn682m2#
伙计们,关于导入大文件所花费的时间,最重要的是它需要更多的时间,因为mysql的默认设置是“autocommit = true”,你必须在导入文件之前设置它,然后检查导入如何像宝石一样工作。
第一次打开MySQL:
mysql -u root -p
然后,你只需要做以下几点:
第一个月
mysql>SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
个azpvetkf3#
+1到@MartinNuc,你可以在批处理模式下运行
mysql
客户端,然后你就不会看到长长的“OK”行。导入一个给定的SQL文件所需的时间取决于很多因素。不仅是文件的大小,还有其中语句的类型,服务器的功能有多强大,以及同时运行的其他东西有多少。
@MartinNuc说他可以在4-5分钟内加载4GB的SQL,但我已经运行了0.5GB的SQL文件,并在较小的服务器上花费了45分钟。
我们无法真正猜测在服务器上运行SQL脚本需要多长时间。
回复你的评论,
@MartinNuc是正确的,你可以选择让mysql客户端打印每一条语句。或者你可以打开第二个会话并运行
mysql> SHOW PROCESSLIST
来查看正在运行的内容。但是你可能更感兴趣的是“完成百分比”数字或完成剩余语句所需的估计时间。很抱歉,没有这样的功能。mysql客户端不知道运行后面的语句需要多长时间,甚至不知道有多少语句。所以它不能给予一个有意义的估计,估计需要多长时间才能完成。
wlp8pajw4#
我使用mysqldumpsplitter脚本来恢复大型sql,我把我的sql.gz拆分成单独的表,然后加载类似mysql workbench的东西,并将其作为恢复到所需模式的过程。
下面是脚本https://github.com/kedarvj/mysqldumpsplitter
这适用于更大的SQL恢复,我在一个网站上使用的平均值是2.5GB的sql.gz文件,20GB未压缩,完全恢复后约为100GB
qyuhtwio5#
我导入了最后几天一个大的SQL文件是大于11 GB。在我的情况下,不需要所有的数据库。我只导入了一些表我需要。所以也许以下解决方案工程的人;
字符串
一旦你创建了轻的sql文件,你可以很容易地导入它如下cmd。
mysql -u username -p(pass)databaset < new_light_sql_file_path.sql
2w2cym1i6#
通过命令行将大型sql文件转换为MySql
1.第一个下载文件
1.将文件粘贴到主页。
1.在终端中使用以下命令(CMD)
1.文件名:mysql -u username -p databsename < file.sql
示例:mysql -u root -p anew < aanew.sql