如何使用SSH导入数据库到mysql?

我有一个更大的数据库(2.1GB)。 我想input到服务器部分的MySQL。 如果我从本地部分以tar.gz格式输出它,它有420MB,如果留下一个sql格式,它有2.1GB。

如何使用SSH导入数据库到mysql? 这里的一些方法只支持sql格式:

 # mysql -u username -p database_name < file.sql 

将一个420MB tar.gz传输到服务器部分,比一个unziped?(也许很长一段时间在解压缩)切割sql到许多件? 还是更好的主意?

另外一个问题,我应该修改my.cnf来支持大文件的input吗?

问候。

是的,如果您有磁盘空间,则将压缩文件传输到服务器,在那里解压缩,然后导入。

没有明显的需要将文件分割成小块。 这不像你发布到Usenet。

如果连接速度很慢,可以使用“rsync”,它可以恢复中断的传输,例如rsync file.sql.gz server:/tmp/file.sql.gz

如果您不想将该SQL导入分割成更小的块,那么在这里有几个选项。 此外,在真正做到这一点之前,在testing机器上testing它是个好主意。

您可以使用bzip2 -9来压缩file.sql,将其传输,然后使用此命令运行导入,不需要您解压缩文件:

 bzcat file.sql.bz2 | mysql -u username -p database_name 

或者如果你更加大胆,你可以直接使用ssh来完成这个命令:

 cat file.sql | ssh -C -c blowfish username@myserver mysql -u username -p database_name 

在此命令中,-C在传输过程中启用压缩function,并且-fishfishselect使用比默认CPU更less的CPU的encryptionalgorithm。

常识会build议传输压缩文件,以便您可以validation例如MD5的校验和,然后从压缩文件运行导入。

希望这可以帮助。