Server1有一个MySQL服务器,Server2有一个我需要导入到表服务器1的MySQL服务器中的文件。我只能使用SSH访问Server2及其文件。
现在,什么才是最好的解决方案呢?一种低效的方法是将文件scp到Server2的硬盘上,然后对该文件执行LOAD DATA INFILE。但由于文件很大,我希望避免这样做。
有没有办法将文件从Server2直接加载到服务器1的Mysql中?
发布于 2014-07-17 20:40:47
cat file.sql | ssh -C -c blowfish username@myserver mysql -u username -p database_name在此命令中,-C在传输过程中启用压缩,而-c blowfish选择使用比默认算法更少的CPU的循环算法。
常识建议传输压缩文件,以便您可以使用例如MD5验证校验和,然后从压缩文件运行导入。
希望这能有所帮助。
发布于 2014-07-17 20:55:31
您希望使用ssh隧道安全地远程访问您的mysql服务器。
以下命令将创建端口转发:
$ ssh -f -L <[local address:]port>:<remote address;port> -N <user id>例如:
$ ssh -F -L 45678:localhost:3307 -N foo@localhost将使用foo的凭证将本地主机上的默认mysql服务器端口转发到端口45678 (这对于测试目的可能很有用)。
然后,您可以简单地使用本地程序连接到服务器:
$ mysql -p -u foo -P 45678在mysql提示符下,可以使用LOAD DATA语句批量加载数据文件,该语句采用可选关键字LOCAL来指示该文件位于连接的客户端。
文档:
https://stackoverflow.com/questions/24803415
复制相似问题