我需要直接在带有SSH的远程服务器上执行mysqldump。 主要原因是我在服务器上没有足够的空间来正常执行此操作,然后使用 SSH 将其复制过来。
不知何故,我需要将 mysqldump 命令的输出通过管道传输到 SSH。
理想情况下,这将是一个单行命令。
谢谢
你可以试试:
ssh -t user@server
"mysqldump
-B database
--add-drop-table
--ignore-table database.logs" > ~/mydatabase.sql
请注意,在此示例中,您无需登录 mysql。而且您不需要 sudo 权限。
我还添加了--add-drop-table
和--ignore-table
选项,因为这些选项很常见。
您可以将> ~/mydatabase.sql
更改为| gzip -9 > ~/mydatabase.sql.gz
以压缩文件。
您希望将转储文件远程系统存储在运行 mysql 的服务器上。 如果通过 ssh 执行 MysqlDump 命令,转储文件最终将保留在连接到 ssh 的服务器上。 您可以考虑连接到 mysql 以通过 ssh 隧道执行 mysqldump 命令。
我不确定是否有任何工具支持在 linux 上进行 ssh 隧道,但 Putty 可以在 Windows 上进行 ssh 隧道。
https://www.linode.com/docs/databases/mysql/create-an-ssh-tunnel-for-mysql-remote-access/