我有一个更大的数据库(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的校验和,然后从压缩文件运行导入。
希望这可以帮助。