将mysqldump的输出redirect到scp

几年前,我曾经和一个linux专业人员一起工作,他做了这个漂亮的技巧。 他可以做一个mysqldump,但将输出redirect到scp / ssh连接,而不是写入磁盘 。 我们曾经在这里工作过,但是我不记得如何去做。

我现在面临的问题是,我的服务器中的硬盘驱动器是最后一段,为了密集的目的,永久安装为只读。

我希望利用这个命令行技巧来仍然能够将我的数据库备份到一个新的服务器上,因为将转储写入本地disd并转移它显然是不可能的。

这实际上是可能的小技巧吗? 如果是这样的语法?

我已经意识到由于只读文件系统的问题,我的经验,我甚至不能连接到MySQL做转储。 但是,您的反馈非常好,希望将来可以用于其他人

mysqldump dbname | ssh [email protected]“mysql -D dbname”

应该工作:-)

设置系统之间的密钥,所以你可以这样做而不需要login/密码:-)

mysqldump ... | ssh ... "cat > out.dmp" 

我喜欢@ GlennKelley的回答,但是想指出以下几点:

我们有一个450GB的数据库,但只有500GB的configuration在主机上。 我们无法在本地导出,所以我们远程导出。 我们validation了输出,并且有数百个输出由于pipe道缓冲问题而损坏的情况。

这里最好的解决scheme是从你希望转储结束的目标主机运行mysqldump但是使用主机的-h选项。 将主机指向MySQL服务器并使用>导出数据。

 mysqldump -u root -p -h 10.1.1.199 --all-databases ...<more options>... > dump.sql