将mysql转储从本地导入到SSH

时间:2017-09-19 14:35:25

标签: mysql sql shell unix

我找不到这个特殊需求的解决方案。 我的计算机上有一个mysql转储,我想使用SSH在Web服务器中导入它。 我怎么做 ? 我可以将ssh连接添加到mysql命令吗?

编辑: 我用SCP做了

token=new_value&name=sam&firname=Mahan
param1=value&token=new_value

3 个答案:

答案 0 :(得分:2)

正如上面的评论所说,最简单的解决方案是将整个转储文件scp到服务器,然后正常恢复。但这意味着您必须有足够的可用磁盘空间来存储您的Web服务器上的转储文件。你可能没有。

另一种方法是为您的Web服务器设置临时ssh隧道。请阅读https://www.howtogeek.com/168145/how-to-use-ssh-tunneling/以获取完整说明,但它看起来像这样:

nohup ssh -L 8001:localhost:3306 -N user@webserver >/dev/null 2>&1 &

这意味着当我连接到本地主机上的端口8001(您可以在这里选择任何未使用的端口号)时,它实际上是通过ssh隧道绕道到网络服务器,它连接到端口3306,MySQL默认端口。

在上面的示例中,您的user@webserver只是一个占位符,因此您必须将其替换为您的用户名和网络服务器主机名。

然后恢复转储文件,就像恢复到本地主机上端口8001上运行的假设MySQL实例一样。这样您就不必将转储文件scp到您的Web服务器。它将通过ssh隧道流式传输到Web服务器,然后直接应用于您的数据库。

pv -pert mydumpfile.sql | mysql -h 127.0.0.1 -P 8001

您必须指定127.0.0.1,因为MySQL客户端使用“localhost”作为非网络连接的特殊名称。

我喜欢使用pv来读取转储文件,因为它会输出一个进度条。

答案 1 :(得分:1)

您可以针对您的问题尝试此解决方案:

使用SSH详细信息登录:

SSH Host name : test.com
SSH User : root
SSH Password : 123456

连接SSH: -

ssh root@test.com
enter password : 123456

登录MySQL: -

mysql -u [MySQL User] -p
Enter Password :- MySQL Password

使用以下命令导入数据库: -

show databases; // List of Databased
use databasedname; // Enter You databased name to Import databased
source path;  // Set path for Import databased for ex : /home/databased/import.sql 

我希望这会对你有所帮助。

答案 2 :(得分:0)

是的,您可以使用一个命令来完成此操作,只需使用“管道”或“过程替换”即可。

以“管道”为例:

private void OnLoaded(object sender, RoutedEventArgs e)
{
    DataGrid SalesOrderDetailLinesGrid = (DataGrid)sender;
    //add sort descriptions...
}

或使用“流程替换”:

ssh user@server "cat /Users/me/files/dump.sql" | mysql -hxxx -uxxx -pxxx dbname

示例2,从远程服务器1获取数据库转储,并使用“管道”在远程服务器2上还原:

mysql -hxxx -uxxx -pxxx dbname < <(ssh user@server "cat /Users/me/files/dump.sql")

或“过程替代”:

ssh user@server1 "mysqldump -uroot -p'xxx' dbname" | ssh user@server2 "mysql -uroot -p'xxx' dbname"

其他链接:

什么是“流程替代”:

http://www.gnu.org/software/bash/manual/html_node/Process-Substitution.html

什么是“管道”:

http://www.gnu.org/software/bash/manual/html_node/Pipelines.html