我有一个从cloud foundry db转储数据的脚本,它的工作方式如下:
cf ssh -L 33001:db.host:3306 --skip-remote-execution App &
TUNNEL_PID=$!
mysqldump --protocol TCP --port= 33001 ..... db_name > /tmp/my-db-dump.sql
kill $TUNNEL_PID
问题是 mysqldump
失败于
mysqldump:获取错误:2003:尝试连接时无法连接到“localhost”(61)上的mysql服务器
我想问题是隧道尚未建成。当我这么做的时候 sleep 5
在mysqldump之前,一切正常。但我不想依赖随机的5秒钟。可以等隧道开工吗?
1条答案
按热度按时间kuhbmx9i1#
你能通过ssh命令运行mysqldump而不是打开一个隧道吗?
mysqldump将写入其stdout,stdout将通过ssh命令传输回您的客户机主机。
或者您甚至可以转储到服务器上的压缩文件,然后用scp获取转储文件。这将有助于加快转移速度。
这是未经测试,但我希望它给你一些想法,以实验。